繁体   English   中英

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

[英]Convert Microsoft JSON Date to Local DateTime Using Moment JS Only

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

目前我分三个步骤:

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> 

moment.js本身已经支持这种格式。 直接传递它。

moment('/Date(1373428800000)/')

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

如果你想要UTC,那么做:

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM