PHP-日付と時刻
デートは日常生活の一部であるため、考えずに一緒に仕事をすることが容易になります。PHPは、日付の操作を容易にする日付演算用の強力なツールも提供します。
time()でタイムスタンプを取得する
PHPの time()関数は、現在の日付と時刻について必要なすべての情報を提供します。引数は必要ありませんが、整数を返します。
time()によって返される整数は、1970年1月1日のグリニッジ標準時の午前0時から経過した秒数を表します。この瞬間はUNIXエポックと呼ばれ、それ以降に経過した秒数はタイムスタンプと呼ばれます。
<?php
print time();
?>
これにより、次の結果が生成されます-
1480930103
これは理解するのが難しいものです。しかし、PHPは、タイムスタンプを人間が快適な形式に変換するための優れたツールを提供します。
getdate()を使用したタイムスタンプの変換
関数 getdate()オプションでタイムスタンプを受け入れ、日付に関する情報を含む連想配列を返します。タイムスタンプを省略すると、time()によって返される現在のタイムスタンプで機能します。
次の表に、getdate()によって返される配列に含まれる要素を示します。
シニア番号 | キーと説明 | 例 |
---|---|---|
1 | seconds 分を過ぎた秒数(0-59) |
20 |
2 | minutes 時を過ぎた分(0-59) |
29 |
3 | hours 1日の時間(0〜23) |
22 |
4 | mday 月の日(1〜31) |
11 |
5 | wday 曜日(0〜6) |
4 |
6 | mon 年の月(1〜12) |
7 |
7 | year 年(4桁) |
1997年 |
8 | yday 曜日(0〜365) |
19 |
9 | weekday 曜日 |
木曜日 |
10 | month 年の月 |
1月 |
11 | 0 タイムスタンプ |
948370048 |
これで、日付と時刻を完全に制御できます。この日付と時刻は、任意の形式でフォーマットできます。
例
次の例を試してください
<?php
$date_array = getdate();
foreach ( $date_array as $key => $val ){
print "$key = $val<br />";
}
$formated_date = "Today's date: ";
$formated_date .= $date_array['mday'] . "/";
$formated_date .= $date_array['mon'] . "/";
$formated_date .= $date_array['year'];
print $formated_date;
?>
これにより、次の結果が生成されます-
seconds = 10
minutes = 29
hours = 9
mday = 5
wday = 1
mon = 12
year = 2016
yday = 339
weekday = Monday
month = December
0 = 1480930150
Today's date: 5/12/2016
date()を使用したタイムスタンプの変換
ザ・ date()関数は、日付を表すフォーマットされた文字列を返します。date()が返す形式に対して、渡す必要のある文字列引数を使用して、膨大な量の制御を実行できます。
date(format,timestamp)
date()は、省略された場合、オプションでタイムスタンプを受け入れ、現在の日付と時刻が使用されます。date()に渡されるフォーマット文字列に含めるその他のデータはすべて、戻り値に含まれます。
次の表に、フォーマット文字列に含めることができるコードを示します。
シニア番号 | フォーマットと説明 | 例 |
---|---|---|
1 | a 'am'または 'pm'小文字 |
午後 |
2 | A 「AM」または「PM」大文字 |
午後 |
3 | d 月の日、先頭にゼロが付いた数値 |
20 |
4 | D 曜日(3文字) |
木 |
5 | F 月名 |
1月 |
6 | h 時間(12時間形式-先行ゼロ) |
12 |
7 | H 時間(24時間形式-先行ゼロ) |
22 |
8 | g 時間(12時間形式-先行ゼロなし) |
12 |
9 | G 時間(24時間形式-先行ゼロなし) |
22 |
10 | i 分(0〜59) |
23 |
11 | j 月の日(先行ゼロなし |
20 |
12 | l (Lower 'L') 曜日 |
木曜日 |
13 | L うるう年(はいの場合は「1」、いいえの場合は「0」) |
1 |
14 | m 年の月(数値-先行ゼロ) |
1 |
15 | M 月(3文字) |
1月 |
16 | r RFC2822形式の日付 |
2000年12月21日木曜日16:01:07 + 0200 |
17 | n 年の月(数値-先行ゼロなし) |
2 |
18 | s 時間の秒 |
20 |
19 | U タイムスタンプ |
948372444 |
20 | y 年(2桁) |
06 |
21 | Y 年(4桁) |
2006年 |
22 | z 曜日(0〜365) |
206 |
23 | Z GMTからの秒単位のオフセット |
+5 |
例
次の例を試してください
<?php
print date("m/d/y G.i:s<br>", time());
echo "<br>";
print "Today is ";
print date("j of F Y, \a\\t g.i a", time());
?>
これにより、次の結果が生成されます-
12/05/16 9:29:47
Today is 5 2016f December 2016 at 9:29 am
要件に応じて日付と時刻をフォーマットする方法について十分に理解していることを願っています。参考までに、すべての日付と時刻の関数の完全なリストは、PHPの日付と時刻の関数に記載されています。