我有一个网页,其中有三个下拉菜单,分别是日,月和年。如果我使用Date带数字的JavaScript 构造函数,那么我会得到一个Date当前时区的对象:
Date
new Date(xiYear, xiMonth, xiDate)
输入正确的日期,但由于夏令时,它认为该日期为GMT + 01:00。
这里的问题是,我随后将其传递Date给Ajax方法,并且在服务器上反序列化日期时,日期已转换为GMT,因此浪费了一个小时,使一天倒退了一个小时。现在,我可以将日期,月份和年份分别传递给Ajax方法,但是似乎应该有更好的方法。
公认的答案为我指明了正确的方向,但是使用setUTCHours()本身就发生了变化:
setUTCHours()
Apr 5th 00:00 GMT+01:00
至
Apr 4th 23:00 GMT+01:00
然后,我还必须设置UTC日期,月份和年份,最后以
Apr 5th 01:00 GMT+01:00
这就是我想要的。
使用.setUTCHours()它可以实际以UTC时间设置日期,这将使您可以在整个系统中使用UTC时间。
.setUTCHours()
但是,除非指定日期字符串,否则不能在构造函数中使用UTC进行设置。
使用new Date(Date.UTC(year, month, day, hour, minute, second))可以从特定的UTC时间创建日期对象。
new Date(Date.UTC(year, month, day, hour, minute, second))