我哪里做错了?我不能得到这个匹配当前的UTC时间,在我输入我的当前时间作为userpicktime。
userPickedTime = new Date();
userPickedTime.setHours(3,30,0);
userTimeChoiceConvertedToUtc = new Date (userPickedTime.getTime() +
(3600000*userPickedTime.getTimezoneOffset()));
timezoneOffset的单位是分钟,您应该这样做:
userTimeChoiceConvertedToUtc = new Date (userPickedTime.getTime() +
(userPickedTime.getTimezoneOffset() * 60000));
虽然Raul用分钟表示偏移量是正确的,而且您使用了错误的乘数,但是您真的不应该将偏移量添加到时间戳中。结果将是一个完全不同的时间点。
时间戳已经是UTC的,并且Date
对象构造函数期望您以毫秒为单位从epoch传递,也是UTC的。
你应该只使用getUTC...
函数,或者toUTCString
,或者toISOString
函数。
如果需要更具体的UTC值格式,可以考虑使用moment.js库。