JSON日期,在服务器的时区中显示原始日期

时间:2013-09-25 10:19:55

标签: javascript json date momentjs

例如,我有一个像这样的字符串日期(我从json中的服务器获取这个,来自rails app)

s = "2013-09-01T00:00:00.000+08:00"

我想像这样显示它

01.09.2013

所以我正在使用moment.js库

moment(s).zone("+08:00").format("DD.MM.YYYY")
>> "01.09.2013"

但我不知道所需时区是否为+08:00。如果我跳过.zone()电话,结果将是错误的,因为我的浏览器位于不同的时区

moment(s).format("DD.MM.YYYY")
>"31.08.2013"

即使在原始字符串中,我最后还是+08:00

所以,我的问题是如何使用纯javascript或moment.js库从json日期字符串中提取时区?

我能想到的最简单的方法是手动提取最后6个字符,

s.slice(s.length - 6, s.length)
> "+08:00"

但也许有更好的方法来完成这项任务?

1 个答案:

答案 0 :(得分:4)

只需使用parseZone功能,如下所示:

moment.parseZone(s)

Documentation is here.

或者,您可以使用较旧的方法,它执行相同的操作:

moment(s).zone(s)