JavaScriptのDateオブジェクトとタイムゾーン
コンストラクタでの日付文字列の扱い
以下、Mac OSのブラウザで検証。
Firefox
JST
d = new Date('2017/09/01')
Date 2017-08-31T15:00:00.000Z
d = new Date('2017-09-01')
Date 2017-09-01T00:00:00.000Z
PDT
d = new Date('2017/09/01')
Date 2017-09-01T07:00:00.000Z
d = new Date('2017-09-01')
Date 2017-09-01T00:00:00.000Z
Chrome
JST
d = new Date('2017/09/01')
Fri Sep 01 2017 00:00:00 GMT+0900 (JST)
d = new Date('2017-09-01')
Fri Sep 01 2017 09:00:00 GMT+0900 (JST)
PDT
d = new Date('2017/09/01')
Fri Sep 01 2017 00:00:00 GMT-0700 (PDT)
d = new Date('2017-09-01')
Thu Aug 31 2017 17:00:00 GMT-0700 (PDT)
Safari
JST
> d = new Date('2017/09/01')
< Fri Sep 01 2017 00:00:00 GMT+0900 (JST)
> d = new Date('2017-09-01')
< Fri Sep 01 2017 09:00:00 GMT+0900 (JST)
PDT
> d = new Date('2017/09/01')
< Fri Sep 01 2017 00:00:00 GMT-0700 (PDT)
> d = new Date('2017-09-01')
< Thu Aug 31 2017 17:00:00 GMT-0700 (PDT)
まとめ
Firefox、Chrome、Safariとも
- new Date('YYYY/MM/DD')だとローカルタイム
- new Date('YYYY-MM-DD')だとUTC
と解釈される。
参考
Date: 2017/09/04



![徹底攻略PHP5技術者認定[上級]試験問題集  [PJ0-200]対応 徹底攻略PHP5技術者認定[上級]試験問題集  [PJ0-200]対応](http://tatsu-zine.com/images/books/164/cover_s.jpg)

