日付処理

2018-06-01 01:26:08

 Webシステムを作る上で面倒なのが日時に関する処理です。

 DBやプログラミング言語によって、日時の表現方法が異なるので、
 何を基準に扱っていくかを事前に明確にする必要があります。

 私の場合、PostgreSQLではtimestamp with time zoneで、タイムゾーン付きで日時を保存。
 PHPではdate_default_timezone_set("UTC")で世界標準時刻に合わせ、
 Jsonにパースする際、date("Y-m-d\TH:i:s\Z", strtotime($date))で出力します。
 JavaScriptが受け取る時は、そのままDateクラスに突っ込めば出来上がりです。
 ブラウザは、各環境のローカルタイムに勝手に変換してくれます。

 つまり国が違うと、日記の日付や時間が現地の時間で表示されることになるのです。
 本来ならそういう動きをするべきなのですが、一般的なサイトではサーバの設定で日時が固定されます。