我的页面上有一个日期选择器,当我选择任何日期时,它会产生类似
的结果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
怎么可能?
答案 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();
答案 1 :(得分:1)
而不是使用硬编码格式字符串,然后连接' Z'在它之后,最好只使用自{j1 v2.0时刻以来一直存在的toJSON()
函数。像这样:
moment('Sun Sep 07 2014 00:00:00 GMT+0500 (Pakistan Standard Time)').toJSON();
这里是完整的JSFiddle。