我正在使用Date()中的方法getDay()获取一周中的某一天,然后我注意到没有时间的相同日期会返回一周中不同的一天
new Date().getDay()
Run Code Online (Sandbox Code Playgroud)
第一个回报我3
new Date('2017-09-27').getDay()
Run Code Online (Sandbox Code Playgroud)
这个让我回报2
将这些结果与一些朋友进行比较,我注意到几乎所有人都有不同的结果,更糟糕的是,有些人真的在第26天写了第27天
我几乎可以肯定这个问题是由时区问题引起的,但我找不到如何获得准确的结果
原因是当您将日期传递给日期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)
Run Code Online (Sandbox Code Playgroud)
您可以通过例如PDT(GMT-08:00)传递您的时区
> new Date('2017-09-27 GMT-08:00')
Wed Sep 27 2017 01:00:00 GMT-0700 (PDT)
Run Code Online (Sandbox Code Playgroud)
或者您可以使用像时刻一样的库.