時間/日付に関するPHP

日付や時間に関する良く使うPHPのまとめです。現在の時間をタイムスタンプで取得、タイムスタンプを書式化する、タイムスタンプを作成、タイムスタンプに変換、現在の時刻を配列で取得、何日後何年後を取得、日付をチェックするなどの方法をメモ。

時間/日付に関するPHP

作成日
2014/03/14
更新日
2016年8月16日

日付や時間に関する良く使うPHPのまとめです。

現在の時間をタイムスタンプで取得

time()は、現在の時間を取得し、タイムスタンプを返します。タイムスタンプはUnix エポック (1970 年 1 月 1 日 00:00:00 GMT) からの通算秒となるため、データの保存や計算などにはいいですがそのままの値では分かりづらいです。
$today = time();
echo $today;

タイムスタンプを書式化する

date()は、ローカルの日付/時刻を書式化します。以下のフォーマットを入れることで取得できます。
オプションとしてタイムスタンプを指定すると、ファーマットで指定した文字列を返します。デフォルトでは現在の時刻をタイムスタンプで返す「time()」となっているため、タイムスタンプを指定しない場合は現在の日付/時間を書式化することになります。
例:echo date('Y年');は「2014年」のようになります。

フォーマットの文字をエスケープするには「」(バックスラッシュ)を利用します。
例:echo date('the jS');は「the 15th」のようになります。

良く使うフォーマット

日にち
d 01 から 31
j 1 から 31
z 0 から 365(年間)
曜日
D Mon から Sun
l Sunday から Saturday
N 1(月曜日)から 7(日曜日)
w 0 (日曜)から 6 (土曜)
W 年単位の週番号
F January から December
m 01 から 12
M Jan から Dec
n 1 から 12
t 指定した月の日数
L 1なら閏年。0なら閏年ではない。
Y 1999または2003
y 99 または 03
午前・午後
a am または pm
A 午前または午後(大文字)AM または PM
時間
g 1 から 12
G 0 から 23
h 01 から 12
H 00 から 23
i 00 から 59
s 00 から 59

タイムスタンプを作成

mktime()は引数に与えられた日付をタイムスタンプに変換します。
引数は、mktime (時間,分,秒,月,日,年)となっています。

タイムスタンプに変換

YYYYMMDDをstrtotime()で一度タイムスタンプにした後、data()のフォーマットを利用して変換してみます。

現在の時刻を配列で取得

getdate()は現在の時刻を配列にして返します。

何日後、何年後を取得

mktime()を使った場合、日付が40といった数字になっても翌月に持ち越してくれます。

strtotime()の引数に入れることでも可能です。
参考URL:http://php-beginner.com/function/datetime/strtotime.html

2つの日付の差分で何日何時間何分後か求める

2014.10.06追記
ある日付まで、あと何日と何時間と何分後かを求めています。記事を公開したときには日付までの日/時間/分をそれぞれ求めていましたが、何日と何時間と何分後かを求めるようにしました。やはり数学が不得意だとこういうところが苦手になってくるようです。

日付をチェックする

checkdate()は、渡された日付が妥当かチェックします。引数にはcheckdate(month,day,year)のように利用します。
month:月は 1 から 12 の間となります。
day:日は、指定された month の日数の範囲内になります。year がうるう年の場合は、それも考慮されます。
year:年は 1 から 32767 の間となります。

    コメントを残す

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Category

Archive