[PHP] date(日付)のフォーマット一覧 [年/月/日/時/分/秒/曜日]

当サイトには広告が含まれています。

PHP_logo

$dt = date("Y-m-d H:i:s") ;

で本日の日時が取得できる。

例:2020-09-01 10:00:00

但し、ソヌォ前に

date_default_timezone_set('Asia/Tokyo') ;

を書かナゐと、ワクェの分からナゐソレになるコトがあるので注意。

関連:[WordPress] 時刻が9時間ヅレる問題(date_default_timezone_set('UTC’)) [wp-load.php]

本日ではなく、特定日時の場合は、

$dt = date("Y-m-d H:i:s",strtotime($dt)) ;

とシタレ!

strtotimeは、UNIXタイムスタンプを返す。

UNIXタイムスタンプとは、「1970-01-01 00:00:00」からの経過秒数のコトである。

この時、

$dt = date("Y年m月d日 H時i分s秒") ;

とスレば、

「2020年09月01日 10時00分00秒」

と、表記を様々に変ゑラレル。

で、この「Y」「m」「d」「H」「i」「s」などが、「フォーマット文字列」とゆぅヤツで、他にもイロ々あるンで、ソレを挙げたる!

年(Year)

・Y:数字(4桁)
・y:数字(下2桁)
・L:閏年かどうか(閏年なら1、でなければ0を返す) → 実例

年を2桁で表すような輩/ヤクァルァは信用/瀋陽できンので、絶対/舌苔に使わン!

閏(ぅル~)年は英語で「leap year」、「leap」は跳ねる、「quantum leap」は「飛躍的進歩」。

ソニーの元社長/会長/CEOで、先日アレした出井(ゐでゐ)が2006年4月に設立したのはクオンタムリープ、今はどうなッてるンかはシラン(SILANE)。

閏年(肆/4/四年毎):2000、2004、2008、2012、2016、2020、2024、2028年、2032年(「以下略」ではなく「滅亡」)

月(Month)

・m:数字(1桁の場合、先頭に0を付加)
・n:数字(1桁の場合、先頭に0を付加セヅ)
・F:英語のフルスペル(January、February、March…)
・M:英語三文字(Jan、Feb、Mar…)
・t:その月の日数を(28-31)

英語の月

・1月:January / Jan
・2月:February / Feb
・3月:March / Mar
・4月:April / Apr
・5月:May / May
・6月:June / Jun
・7月:July / Jul ←ぢュるッ!!
・8月:August / Aug
・9月:September / Sep
・10月:October / Oct
・11月:November / Nov
・12月:December / Dec

日(Day)

・d:数字(1桁の場合、先頭に0を付加)
・j:数字(1桁の場合、先頭に0を付加セヅ)

先頭に0を付加するかシナゐか

「先頭に0を…」のアレだが、例えば、1月なら「01」とするンが「先頭に0を付加」で、「1」とするンが「先頭に0を付加セヅ」とユ~コト!

DBに格納する際は、0を付加して「2020-09-01 10:00:00」とするンが普通。

ぢぁ~/邪痾、なンで「先頭に0を付加セヅ」があるのかとユ~ト、

$dt = date("Y年m月d日") ;

とすると、

「2020年09月01日」

となり、ガゐぢンはトモカク、天皇(TENG-KNOW)を中心とスル神の國である日本國に在住する赤子(セキシ)には読みニクゐだろう?

$dt = date("Y年n月j日") ;

とするコトで、

「2020年9月1日」

と、大和魂(ヤマト騙スィ~)にフィットするクレヴァ~な見た目にシタレ!

時(Hour)

・H:数字 24時間制(1桁の場合、先頭に0を付加)
・h:数字 12時間制(1桁の場合、先頭に0を付加)
・G:数字 24時間制(1桁の場合、先頭に0を付加セヅ)
・g:数字 12時間制(1桁の場合、先頭に0を付加セヅ)
・a:午前/午后の英語小文字(am/pm)
・A:午前/午后の英語大文字(AM/PM)

普通、午前/午后は、12時間制(h,g)とともに使う。

24時間制と使うと、「午後22時」ような変なソレになるからだ。

分(Minutes)

・i:数字(1桁の場合、先頭に0を付加)

「先頭に0を付加セヅ」がナゐンかはシラン(SILANE)!

秒(Seconds)

・s:数字(1桁の場合、先頭に0を付加)

「先頭に0を付加セヅ」がナゐンかはシラン(SILANE)!

曜日(day of week)

・I:英語のフルスペル(Sunday、Monday、Tuesday…)
・D:英語三文字(Sun、Mon、Tue…)
・w:数字(日曜日は0,月曜日は1、火曜日は2…土曜日は6) 配列用
・N:数字(月曜日は1,火曜日は2、水曜日は3…日曜日は7)
・W:月曜日に始まる年単位の週番号

英語の曜日

・日:Sunday / Sun
・月:Monday / Mon
・火:Tuesday / Tue
・水:Wednesday / Wed
・木:Thursday / Thu
・金:Friday / Fri
・土:Saturday / Sat

で、天皇を中心とスル神の國である日本國の表記はナゐンかとユ~ト、無ゐ!

コヌォ!國ヅォクめッ!!

テコトで、日本語の配列を用意シテヲキ、

$week = array("日","月","火","水","木","金","土") ;

「w」で数字を返してモラゐ、配列から引き出す鹿内/シカナゐ!

$youbi = date('w',strtotime($day)) ;
$youbi = $week[$youbi] ;

$dayが水曜日の場合、「3」を返シてキヲるンで、配列の4番目にアル「水」が得られる。

配列なンで、最初が「0」やから注意/中尉!

分を1桁で表示したい場合

時間にAM/PMを併記しなければ、「4時」と示した場合、午前か午后か不明である。

さらに、鬼●米英語の「AM/PM」ナドではナく、「午前/午后」とすれば、日本國民としてカンペキである。

月で「n」、日で「j」、時間で「A,g」を駆使シテモ、「2022年9月1日 午后8時05分」では、「05分」がクィムォティ惡ゐ!!

上述のように、分(と秒)に於ゐては、「先頭に0を付加セヅ」のフォーマット文字列がナゐ?タメだ。

シャーなゐから、以下の方法でナニする。

// 分のみを取得
$minutes = date("i",strtotime($dt)) ;

// 1文字目を取得(開始位置の「0」に注意)
$minutes_one = substr($minutes,0,1) ;

// 1文字目が「0」なら、2文字目から1文字を取得
if($minutes_one == "0"){
$minutes = substr($minutes,1,1) ;
}

// 処理した「分」を結合シタレ!
$dt = date("Y年n月j日 Ag時",strtotime($dt)).$minutes."分" ;

// AMを午前に、PMを午后に置換
$dt = str_replace("AM","午前",$dt) ;
$dt = str_replace("PM","午后",$dt) ;

結果:「2022年9月1日 午后8時5分」

substrの部分は、以下でもOK。

// 1文字目が「0」なら、後ろから1文字以降を取得
if($minutes_one == "0"){
$minutes = substr($minutes,-1) ;
}

開始位置を負の値とした場合、後ろから数えて…となる。

長さを指定していないが、「後ろから1文字目以降、右へ全部」となるので問題ない。

悪ゐ例

trim/ltrim/rtrimは、空白やタブ、改行だけでなく、削除する文字の指定も可能なので便利だが、1文字目が「0」なら削除しようとして

if($minutes_one == “0"){
$minutes = ltrim($minutes,"0″) ;
}

と書くと、「00分」の時に0が貳ツとも除去され、「分」ノムィとなッてしまう。

trim/ltrim/rtrimは、その位置に連続した削除対象があると、全部削除するノデヌェ。

時間差を求める

現在のUNIXタイムスタンプは、以下のイヅレカで取得できる。

$now = time() ;
$now = strtotime("now") ; ←ゐムァでショ!!

なンで、特定日($dt)から本日の差(秒)は、

$diff_seconds = abs($now - strtotime($dt)) ;

となり、差(分)は、

$diff_minutes = abs(($now - strtotime($report_dt))/60)) ;

となり、差(時間)は、

$diff_hour = abs(($now - strtotime($report_dt))/(60*60)) ;

となる。

# absは絶対値(absolute value)を返す。

情報の公開日時から●時間/分までは表示するが、それ以降は(古ゐンで)表示しナゐ、などの時に使う。

(60*60)はカナラヅ括弧でク々るか、「3600」と書かンと変になるコトが分からン奴は、小学生の算数からヤリナオセ!ドァヴォ!!

関連:[PHP] 指定日から"+1 day"とか [strtotime]