logo サブスレッド

JavaScriptで文字列をDate型にする

はじめに

金曜担当のしみずです。どうぞよろしく。
ちょっと前に社内でJavaScriptで文字列をDate型にするのどうやるんだべ?という話になったので、そのことを書こうかなと思います。

YYYY-MM-DD HH:mm:ss 形式の文字列をDateにしてみる

例えば「2016-04-19 18:12:25」という文字列がサーバから届きます。
これをJavaScriptで

new Date('2016-04-19 18:12:25');

ってやったら、どのブラウザでもちゃんとDate型になるのか?
検証結果はこちら

  • Chrome:OK
  • FireFox:NG
  • IE(11):NG
  • Safari:NG

とまぁ、散々な結果でございました。

YYYY/MM/DD HH:mm:ss 形式の文字列をDateにしてみる

次に試したのは、日付の区切りを「-」から「/」にしてみることでした。

new Date('2016/04/19 18:12:25');

検証結果はこちら

  • Chrome:OK
  • FireFox:OK
  • IE(11):OK
  • Safari:OK

おっ、これでいいじゃん。と思いましたが(つづく)

YYYY-MM-DDTHH:mm:ssZ 形式の文字列をDateにしてみる

(つづき)mzsm先生から、どうせ文字列加工するなら「YYYY-MM-DDTHH:mm:ssZ」形式にしたほうが無難。というご指摘をいただきました。
http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15
この形式が標準フォーマットのようです。

new Date('2016-04-19T18:12:25+09:00');

検証結果はこちら

  • Chrome:OK
  • FireFox:OK
  • IE(11):OK
  • Safari:OK

当然、全部OKでした。

結論

やっぱり標準フォーマット YYYY-MM-DDTHH:mm:ssZ を使うのが安心ですね!

おわりに

週間、ウチのネコ。第2号

椅子に乗るウチのネコ。

現在の位置:サブスレッド ホーム > 技術ブログ > JavaScriptで文字列をDate型にする