需要使用时刻js格式化时区偏移

时间:2014-09-07 12:52:47

标签: momentjs

我的页面上有一个日期选择器,当我选择任何日期时,它会产生类似

的结果
Sun Sep 07 2014 00:00:00 GMT+0500 (Pakistan Standard Time)

我需要格式化它:YYYY-MM-DDTHH:mm:ss Z

所以,为此,我使用时刻语法

var date='Sun Sep 07 2014 00:00:00 GMT+0500 (Pakistan Standard Time)';
moment(date).format('YYYY-MM-DDTHH:mm:ss Z');

产生输出

2014-09-07T00:00:00 +05:00

这很好,但我的api期望标准时区偏移'Z',而不是在我的情况下解析为当地当前时区(即+5:00)。

所以,我想制作这个

2014-09-07T00:00:00Z

怎么可能?

2 个答案:

答案 0 :(得分:13)

使用moment.utc()以UTC时间而非本地时间显示时间:

var dateValue = moment(date).utc().format('YYYY-MM-DDTHH:mm:ss') + 'Z';

moment().toISOString()ISO format格式显示字符串(格式:YYYY-MM-DDTHH:mm:ss.sssZ,时区始终为UTC):

var dateValue = moment(date).toISOString();

JSFiddle

答案 1 :(得分:1)

而不是使用硬编码格式字符串,然后连接' Z'在它之后,最好只使用自{j1 v2.0时刻以来一直存在的toJSON()函数。像这样:

moment('Sun Sep 07 2014 00:00:00 GMT+0500 (Pakistan Standard Time)').toJSON();

这里是完整的JSFiddle