UNIXタイムスタンプについて
プログラミングにおける日付、時刻の取り扱いでは、 UNIXタイムスタンプ という形式がよく使用されます。
まずタイムスタンプとは、 「1970年1月1日午前0時0分0秒」から、何秒経過しているか 表した数値です。
UNIXは、UNIX系OSの意味です。
よく分からないと思うので、実際に現在時刻のタイムスタンプを取得してみましょう。
time(現在時刻を取得)
<?php echo time();
10桁の数値が出てきたと思います。
これがタイムスタンプです。
今は、 現在時刻は1970/1/1 0:00:00 から
これは「1970/1/1 00:00:00からの経過秒数」のことです。
日付をいったんこの基準日からの経過秒数に戻してから足し算・引き算などの計算をして、その後にまた日付のフォーマットに戻す、という方法がよく使われます。
今回、現在時刻やある特定日付の UNIX タイムスタンプを求めるやり方を見ていきましょう。
// index.php var_dump(time());
10桁の数値が出てきたと思います。
これがタイムスタンプです。
試しにブラウザを更新してみてください。
1秒経過するごとに値が変わります。
現在時刻が1970/1/1 00:00:00 から何秒経過しているか 表示しています。
タイムスタンプはプログラミングで扱いやすいことから多くの場面で使用されています。
date(タイムスタンプから日付に戻す)
とはいえ、タイムスタンプは人間の目では一体いつなのか分かりづらいです。
そのため、タイムスタンプから日付のフォーマットに直す関数も用意されています。
まずは例題です。
<?php // 現在時刻を取得 echo date("Y-m-d H:i:s", time());
分かりやすいフォーマットで表示されたのではないでしょうか?
第一引数で、 表示させたいフォーマット 、第二引数で、タイムスタンプを指定します。
上記の例では、 現在時刻のタイムスタンプを取得するtime() を使用していますが、直接タイムスタンプを指定することも可能です。
指定日のタイムスタンプはPHPの関数で取得することもできますが、下記のようなページでも求めることができます。
UNIXタイムスタンプ変換ツール
// 例:2017/4/12 16:00:00のタイムスタンプを変換 echo date("Y-m-d H:i:s", 1491980400);
日付フォーマットについて
Y-m-d H:i:s という見慣れない形が出てきました。
これを日付フォーマットといいます。
PHP公式ドキュメント-date-
フォーマット | 意味 |
---|---|
Y | 年(例:2017) |
m | 月(ただし2桁に合わせて表示) |
d | 日(ただし2桁に合わせて表示) |
H | 時(ただし2桁に合わせて表示) |
i | 分(ただし2桁に合わせて表示) |
s | 秒(ただし2桁に合わせて表示) |
例えば、現在時刻が2017年2月16日午前5時18分13秒であれば、 2017-02-16 05:18:13 と表示されます。
日付フォーマットも表示させ方でいろいろ記載の仕方はありますが、基本は上記の表のパターンを覚えれば良いかと思います。
数値以外のところは比較的自由にできるので、例えば日本語にするなら、
<?php echo date("Y年m月d日 H時i分s秒", time());
といった具合にもできます。
strtotime(特定日付のタイムスタンプを取得)
PHP公式ドキュメント-strtotime-
特定日付のタイムスタンプを求めるのであれば、strtitime
がおすすめです。
(他にもmktimeがあったりしますが、strtotime
で十分です。)
例えば、2017年2月16日午前11時25分00秒のタイムスタンプを求めるのえであれば、下記になります。
<?php echo strtotime("2017/2/16 11:25:00");
日付の文字列はある程度書き方がきまっているので、 2017/2/16 11:25:00 というかたちで書くよう決めにしてしまいましょう。
日付ではない指定方法
strtotime
は案外便利で、 last Sunday と渡すと、先週の日曜日の現時刻を返してくれます。
また、 +2 day と書くと、2日後の現時刻を返してくれます。
<?php // 先週の日曜日 echo strtotime("last Sunday"); // 2日後 echo strtotime("+2 day");
このような書き方も公式ドキュメントに記載があるので、必要になったら都度調べましょう。
IT用語 SESに向けて準備しよう
3章では一つ一つの項目で数個のIT用語について調べていただきます。
どの用語もSESでよく耳にする言葉なのできちんと調べていきましょう!
下記の用語について、調べてみましょう。
※IT用語についてはチェックテストの範囲外です。
1. ログ(意味、確認の仕方)
2. クラウドサーバー、レンタルサーバー、VPSの違い
3. PHPのFWの種類と特徴