我正在使用Date()中的方法getDay()来获取星期几,然后我注意到没有时间的相同日期会让我返回一周中不同的一天
new Date().getDay()
第一个给我 3
new Date('2017-09-27').getDay()
这个让我回复 2
将这些结果与一些朋友比较,我注意到几乎每个人都有不同的结果,更糟糕的是,有些人在27日写作时真的得到第26天
我几乎可以肯定这个问题是由时区问题引起的,但我找不到如何获得准确的结果
答案 0 :(得分:9)
原因是当您将日期2017-09-27
传递给日期方法时,您尚未通过时区。请查看以下结果:
> new Date()
Wed Sep 27 2017 12:58:39 GMT-0700 (PDT)
> new Date('2017-09-27')
Tue Sep 26 2017 17:00:00 GMT-0700 (PDT)
您可以在PDT(GMT-08:00)
中传递您的时区> new Date('2017-09-27 GMT-08:00')
Wed Sep 27 2017 01:00:00 GMT-0700 (PDT)
或者您可以使用moment等库。