仅使用Moment JS将Microsoft JSON日期转换为本地DateTime

时间:2015-05-15 18:53:58

标签: javascript json date datetime momentjs

JSON日期:'/日期(1373428800000)/' 最终结果:2013年7月9日美国东部时间晚上8点

目前我分3步完成:

var a = cleanJsonDate('JsonDate');
var b = formatDate(a); // 7/10/2013 12:00 AM
var c = moment.utc(b); // 7/9/2013 8:00 PM
return c;

是否可以仅使用时刻js来完成相同的结果?

---- -----更新

结合@ThisClark& @Matt回答。我尽可能接近目标;但是,'h'格式由于某种原因不起作用,我仍然得到20.00.00而不是8:00

var m = moment.utc(moment('/Date(1373428800000)/').format('M/D/YYYY h:m A')).toDate();
alert(m);
<script src="http://momentjs.com/downloads/moment.min.js"></script>

2 个答案:

答案 0 :(得分:14)

此格式已为supported natively by moment.js。直接传递它。

moment('/Date(1373428800000)/')

然后,您可以使用任何时刻功能,例如.format().toDate()

如果您想要UTC,请执行:

moment.utc('/Date(1373428800000)/')

同样,您可以致电formattoDate,但请注意toDate会生成Date个对象,该对象仍然会有本地时间行为。除非你绝对需要一个Date对象,否则你应该坚持使用format和其他时刻函数。

答案 1 :(得分:3)

我没有看到你的所有代码,但如果你能从json那里得到毫秒的1373428800000值,那么你可以直接将它传递给它。我认为formatDate是你写的一个函数。它是否做了一些重要的事情,比如你需要使用moment.js来操纵时间,还是只能使用时刻的格式函数?

&#13;
&#13;
var date = 1373428800000;
var m = moment.utc(date);
//var m = moment.utc(date).format('M/D/YYYY H:mm A'); <-- alternative format
alert(m);
&#13;
<script src="http://momentjs.com/downloads/moment.min.js"></script>
&#13;
&#13;
&#13;