从非本地ISO8601字符串中获取时间(小时,分钟)

时间:2015-09-05 21:21:45

标签: javascript ruby-on-rails datetime momentjs

我想在指定的时区获得ISO8601字符串的时间。

但是,每当我抓住ISO8601字符串的时刻对象时,它会将所有内容转换为我机器的当地时间。

E.g。当我执行moment("2015-09-15T07:55+02:00").hours()时,它返回1,因为它将其转换为2015-09-15T01:55:00-04:00"

如何制作它以使其返回7小时?

2 个答案:

答案 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;
},