【发布时间】:2017-02-22 04:55:35
【问题描述】:
我正在制作一个工作日计算器,它需要一个日期和一个偏移量并返回一个日期。因此,如果您在 2017 年 2 月 27 日星期一通过它并想知道它在 2017 年 2 月 23 日星期四返回之前 2 个工作日的日期。它还考虑了假期,所以如果在前面的示例中,2017 年 2 月 23 日是假期将于 2017 年 2 月 22 日返回。
我在 SQL Server 中的日期字段中有一个假日列表,格式为 yyyy-mm-dd。问题在于,当它们转换为 javascript Date 对象时,它会附加一个时区偏移量,如果是东部标准时间,则会从日期减去 5 小时,将其回滚到前一天。
new Date('2017-02-20');
变成
Sun Feb 19 2017 19:00:00 GMT-0500 (Eastern Standard Time)
或
Sun Feb 19 2017 20:00:00 GMT-0400 (Eastern Daylight Time)
它似乎在标准时间和日光时间之间随机来回切换。
无论用户住在哪里,如何防止 javascript 弄乱我的日期?我只关心日期,而不是时间。
【问题讨论】:
-
使用momentjs.com,再也不用担心糟糕的日期对象了。
-
JavaScript 没有“搞砸”这里的任何东西;它正在转换 you 传递它的日期。您需要在存储时间之前本地化时间。
-
@lux 时间在这种情况下毫无意义。在这种情况下,我希望它将天视为时间的基本单位。所以 2 月 20 日就是 2 月 20 日,无论你住在宇宙的哪个角落。
-
@Waxi 我以前用过momentjs,但我不清楚它如何帮助我摆脱日期的时间部分。
-
如果您希望他们都使用相同的时间,那么您只需自己传递时间,让他们都在午夜。
new Date('2017-02-21 00:00:00')
标签: javascript date