こんにちは、制作部 川崎です。
プログラムで日付を扱うときにちょいちょい出てくる「UTC」と「GMT」って何が違うんだろう・・・
難しいことが色々書いてありますが、
コーディングする上では、特に意識して区別する必要は無いようです。
WordPressの場合、wp-settings.phpで
date_default_timezone_set( ‘UTC’ );
の様にデフォルトで定義されているので
デフォルトの日付はUTCで扱われることとなります。
なので、date(‘Y-m-d H:i:s’);で日付を取得すると、9時間ずれた状態の日時が取得されます。
これに対応するために
date_default_timezone_set(“Asia/Tokyo”);
に変更すれば、日本時間が返る様になります。
しかし、この辺のファイルは、アップデートで書き換わる可能性があるので
余り触りたくないです。
なので、Wordpressで当日日付を取得する場合、
date_i18n(‘Y-m-d H:i:s’);
を使えば、設定ファイルの変更をせずに、
当日日付が取得できるので、こちらを使った方がよいと思います。
PHPで扱うときは
$now = new DateTime(”, new DateTimeZone(‘Asia/Tokyo’));
$now->format(‘Y-m-d H:i:s’);
これでOKです。
時間演算したいときは、UNIXタイムスタンプで取得して
UNIXタイムスタンプとしてえ扱えばよいかと思います。
$today = date_i18n(‘U’);
$entry = strtotime( $date );
$elapsed = date(‘U’,( $today – $entry )) / 86400;
取得の時のデフォルトのタイムゾーンに気を付ける事、
時間演算時はUNIXタイムスタンプで扱う
この2点を気にしておけば、よいって事にしておきます。