JavaScript 创建新日期减去一天。

4

实际上,我试图设置一个带有确定日期的jQuery日期选择器,但是当我创建一个新的日期以设置小部件时,JavaScript会将一天减去。

代码:

new Date('2016-04-14')

结果:

Wed Apr 13 2016 17:00:00 GMT-0700 (US Mountain Standard Time)

jsfiddle


3
2016-04-14 00:00:00 UTC2016-04-13 17:00:00 GMT-7 是相同的(请注意,美国此时距午夜有7个小时的时间差)。 - vesse
date.setDate(date.getDate()-1); - Rayon
2个回答

4

您应该阅读详细手册

注意:强烈不建议使用Date构造函数(和Date.parse,它们是等效的)解析日期字符串,因为浏览器之间存在差异和不一致性。

您应该选择new Date(2016, 3, 14)(其中3代表月份是从0开始计数)。这将在您所在时区的4月14日午夜创建一个日期。


这里最可靠的方法是什么?从服务器端获取数据? - techie_28
@techie_28 这完全取决于您的需求。 - Phil
如果用户处于许多不同的时区,我们是否可以有一种适合所有人的方式? - techie_28
@techie_28,这取决于你想做什么。你想让用户在他们浏览器的时区中使用日期,还是选择一个时区或者一个特定的全球时区?如果你需要实际的答案,我认为你应该在StackOverflow上提出完整的问题。 - Phil
http://stackoverflow.com/questions/36590873/consistent-client-side-date-timestamp-using-javascript - techie_28

3

要获取UTC(GMT)时间,请使用.toUTCString()而不是默认的.toString()

如果您想从字符串创建本地时间午夜日期,请使用iso8601,例如2016-04-01T00:00:00-07:00。请注意时区偏移量。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接