Javascript 仅使用矩JS将Microsoft JSON日期转换为本地日期时间
JSON日期:'/Date(1373428800000)/' 最终结果:美国东部时间2013年9月7日晚上8:00 目前,我分3个步骤进行:Javascript 仅使用矩JS将Microsoft JSON日期转换为本地日期时间,javascript,json,date,datetime,momentjs,Javascript,Json,Date,Datetime,Momentjs,JSON日期:'/Date(1373428800000)/' 最终结果:美国东部时间2013年9月7日晚上8:00 目前,我分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和@
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(矩('/Date(1373428800000)/).format('m/D/YYYY h:ma')).toDate();
警报(m)代码>
我看不到您的所有代码,但如果您可以从该json中获取毫秒值1373428800000
,那么您可以直接将其传递给矩。我认为formattate
是您编写的一个函数。它是否做了一些重要的事情,比如操纵moment.js所需的时间,或者您可以只使用moment的format函数
var日期=1373428800000;
var m=时刻utc(日期);
//var m=时刻.utc(日期).format('m/D/YYYY H:mm A') 此格式已被删除。直接传过去
moment('/Date(1373428800000)/')
然后,您可以使用任何矩函数,例如.format()
或.toDate()
如果需要UTC,请执行以下操作:
moment.utc('/Date(1373428800000)/')
同样,您可以调用format
或toDate
,但是请注意toDate
将生成一个Date
对象,该对象仍然具有本地时间行为。除非您绝对需要日期
对象,否则您应该坚持使用格式
和其他即时功能。谢谢。但为什么7月10日而不是9日回归呢。是的,formatDate是一个自定义方法;然而,我不认为这一刻需要全部。不确定为什么a和b总是无效,或者NaN和d返回的是12 AM var date=item.StartDate.replace(/[^0-9]/g',);var a=时刻utc(日期);var b=时刻.utc(日期).format('M/D/YYYY H:mm A');var c=1373428800000;var d=矩.utc(c).toDate();var e=矩.utc(c).格式('M/D/YYYY H:mm A');警报(a+“”+b+“”+d+“”+e);//NaN无效日期2013年10月7日12:00 AM 2013年10月7日4:00 AM在使用正则表达式修改它之前,项中的值是什么。StartDate
,使用该正则表达式尝试实现什么?使用该正则表达式,我从json返回的数据值中提取数字。我想我忘记了使用parseInt(日期)1373428800000将提取的值解析为整数,转换为4小时前的2013年7月9日8:00 AM(午夜)。不知道为什么我们会在2013年10月7日凌晨4:00晚4个小时到达。这对我来说没有意义…更新以解决您的更新问题。不推荐您在更新中显示的代码。很抱歉,我没有早点看到这个编辑。回答得很好。我知道即时解析.NET日期,但我不知道.format,谢谢!