Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅使用矩JS将Microsoft JSON日期转换为本地日期时间_Javascript_Json_Date_Datetime_Momentjs - Fatal编程技术网

Javascript 仅使用矩JS将Microsoft JSON日期转换为本地日期时间

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和@

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和@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,谢谢!