使用设置的时区创建日期,而不使用字符串表示形式我有一个网页,有三个下降日,月和年。如果我使用JavaScriptDate构造函数,该构造函数接受数字,然后我将得到一个Date对象,用于当前时区:new Date(xiYear, xiMonth, xiDate)给出正确的日期,但它认为日期是格林尼治时间+01:00由于夏令时间。这里的问题是我把这个传递给你Date到Ajax方法时,当日期在服务器上反序列化时,它已经被转换为GMT,因此损失了一个小时,这使一天回到原来的一小时。现在,我可以将日期、月份和年份分别传递到Ajax方法中,但似乎应该有更好的方法。被接受的答案为我指明了正确的方向,不过只是用setUTCHours()它本身改变了:Apr 5th 00:00 GMT+01:00到Apr 4th 23:00 GMT+01:00然后,我还必须设置UTC的日期、月份和年份来结束。Apr 5th 01:00 GMT+01:00这正是我想要的。
3 回答
慕码人2483693
TA贡献1860条经验 获得超9个赞
function createDateAsUTC(date) {
return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()));
}function convertDateToUTC(date) {
return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(),
date.getUTCSeconds()); }添加回答
举报
0/150
提交
取消
