PHPにおける日時の扱い方
リンク †
PHP 日付・時刻 関数
http://jp.php.net/manual/ja/ref.datetime.php
PHP による日付・時刻・時間の計算・演算のまとめ
http://www.hoge256.net/2007/08/63.html
基本 †
日時をいったんUNIXタイム(1970年1月1日 00:00:00からの経過秒)に変換して扱えばOK
mktime †
http://jp.php.net/mktime
mktime — 日付を Unix のタイムスタンプとして取得する
int mktime ([ int $hour [, int $minute [, int $second [, int $month [, int $day [, int $year [, int $is_dst ]]]]]]] )
与えられた引数に従って UNIX のタイムスタンプを返します。
このタイムスタンプは、Unix epoch(1970年1月1日00:00:00 GMT)から 指定された時刻までの通算秒を表す長整数です。
引数は右から順に省略することができます。
省略された引数は、 ローカルの日付と時刻に従って、現在の値にセットされます。
time †
http://jp.php.net/manual/ja/function.time.php
time — 現在の Unix タイムスタンプを返す
int time ( void )
現在時刻を Unix エポック (1970 年 1 月 1 日 00:00:00 GMT) からの通算秒として返します。
date †
http://jp.php.net/manual/ja/function.date.php
date — ローカルの日付/時刻を書式化する
string date ( string $format [, int $timestamp ] )
指定された引数 timestamp を、与えられた フォーマット文字列によりフォーマットし、日付文字列を返します。
タイムスタンプが与えられない場合は、現在の時刻が使われます。
つまり timestamp はオプションであり そのデフォルト値は time() の値です。
strtotime †
http://jp.php.net/manual/ja/function.strtotime.php
strtotime — 英文形式の日付を Unix タイムスタンプに変換する
int strtotime ( string $time [, int $now ] )
この関数は US 英文形式の日付を含む文字列が指定されることを期待しており、 now で与えられたその形式から Unix タイムスタンプ (1970 年 1 月 1 日 00:00:00 UTC からの経過秒数) への変換を試みます。
now が指定されていない場合は現在日時に変換します。
注意: 年を 2 桁の数値で指定した場合、その値が 00-69 なら 2000-2069 に、 70-99 なら 1970-1999 にそれぞれ変換されます。
オリジナル関数 †
英米式の日時表記は、並び順が日本人になじまない。
日本人用のラッパー関数を用意する。
0
1
2
3
4
| <?php
//Japanese mktime
function jp_mktime ($year = '', $month = '', $day = '', $hour = '', $minute = '', $second = '', $is_dst = '') {
return mktime ($hour, $minute, $second, $month, $day, $year, $is_dst);
}
?>
|