我想在指定的时区获得ISO8601字符串的时间。
但是,每当我抓住ISO8601字符串的时刻对象时,它会将所有内容转换为我机器的当地时间。
E.g。当我执行moment("2015-09-15T07:55+02:00").hours()
时,它返回1,因为它将其转换为2015-09-15T01:55:00-04:00"
。
如何制作它以使其返回7小时?
答案 0 :(得分:0)
我认为这会有所帮助:
http://momentjs.com/docs/#/parsing/special-formats/
moment("2010-01-01T05:06:07", moment.ISO_8601);
答案 1 :(得分:0)
不确定时刻,但是如果有帮助的话,我的转换器是东部时区......
getServerDate: function(dateValue) {
var dateJan;
var dateJul;
var timezoneOffset;
// Get dates for January and July
dateJan = new Date(dateValue.getFullYear(), 0, 1);
dateJul = new Date(dateValue.getFullYear(), 6, 1);
// Get timezone offset
timezoneOffset = Math.max(dateJan.getTimezoneOffset(), dateJul.getTimezoneOffset());
// Check if daylight savings
if (dateValue.getTimezoneOffset() < timezoneOffset) {
// Adjust date by 4 hours
dateValue = new Date(dateValue.getTime() + ((1 * 60 * 60 * 1000) * 4));
} else {
// Adjust date by 5 hours
dateValue = new Date(dateValue.getTime() + ((1 * 60 * 60 * 1000) * 5));
}
return dateValue;
},