Jas*_*ack 7 javascript momentjs
我有一个momentjs对象,它包含一个带偏移量的日期时间.此时刻对象是从其字符串表示形式创建的:
var x = moment("2017-02-08T04:11:52+6:00")
Run Code Online (Sandbox Code Playgroud)
使用该对象后,我想从当前对象获得相同的文本表示.
尝试格式化对象时,我得到以下结果:
x.format() => "2017-02-08T04:11:52+14:00"moment.parseZone(x).format("YYYY-MM-DDTHH:mm:ssZ") => "2017-02-07T14:11:52+00:00"如何格式化我的时刻对象,使我再次具有完全相同的表示?
一些东西:
您的输入是非标准的,因为您已将偏移量指定为+6:00.ISO8601格式要求小时和分钟偏移两位数.(它应该是+06:00.对于这个答案的其余部分,我会认为这是一个错字.)
在创建时刻时,您将丢失原始偏移量,因为您通过调用调整到本地时区moment(...).因此它不存在x,至少在某种程度上你无法检索它.
一般来说,parseZone应该传递一个字符串,而不是一个Moment对象.
您当然可以按照您的要求进行格式化,只要您已正确解析即可.您甚至不需要指定格式字符串,因为您要查找的是默认字符串.
var str1 = "2017-02-08T04:11:52+06:00";
var mom = moment.parseZone(str1);
var str2 = mom.format(); // "2017-02-08T04:11:52+06:00"
Run Code Online (Sandbox Code Playgroud)