Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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 将值传递给新日期,给出无效日期_Javascript_Momentjs - Fatal编程技术网

Javascript 将值传递给新日期,给出无效日期

Javascript 将值传递给新日期,给出无效日期,javascript,momentjs,Javascript,Momentjs,当我将值传递给新日期时,我得到的日期无效。我是这样做的 var s1 = moment("20.06.2013 09:11:00", "DD.MM.YYYY HH:mm:ss"); var s2 = s1.format("YYYY.MM.DD HH:mm:ss"); var dt1 = s2.replace(/[-,.:\s]/g, ","); var dt2 = new Date(dt1); 在google chrome的调试模

当我将值传递给新日期时,我得到的日期无效。我是这样做的

        var s1 = moment("20.06.2013 09:11:00", "DD.MM.YYYY HH:mm:ss");
        var s2 = s1.format("YYYY.MM.DD HH:mm:ss");
        var dt1 = s2.replace(/[-,.:\s]/g, ",");
        var dt2 = new Date(dt1);
在google chrome的调试模式下,当我得到dt1的值为“2013,06,20,09,11,00”时。但是当我输入新日期(2013,06,20,09,11,34)时,我得到了日期


我还尝试删除双引号,但它没有删除双引号。我应该怎么做才能消除这个错误。

正如Kalley所建议的,在代码中使用参数:

 var s1 = moment([2013,06,20,09,11,34]);

编辑为添加:在Jscript中,矩()采用[Y,M,D,h,M,s]格式的数组。来源:

如果您在
日期之后
,但希望使用矩.js解析,那么只需执行以下操作:

var m = moment("20.06.2013 09:11:00", "DD.MM.YYYY HH:mm:ss");
var dt = m.toDate();

您正在将一个字符串“2013,06,20,09,11,34”传递给
新日期
,而不是多个参数。@kalley那么该怎么做?这是有效的。是否可以将GMT时间添加到输出中。我确实喜欢var dt=m.toDate().getTime(),得到的输出是1371712260000。我希望输出为1371712260000+0200您可以使用
m.valueOf()+m.format('ZZ')
——但我会质疑任何需要这种格式的地方。通常,当偏移量与某个值配对时,这意味着偏移量已经反映了该值。但以秒或毫秒为单位的时间戳几乎总是以UTC为单位。所以这些问题是相互矛盾的。我想传递json日期格式。这就是为什么我需要添加这个+0200,否则我会得到2个小时的时间,基本上,你想要这个:
m.utc().format(“[/Date](XSSS”)+m.local().format(“ZZ”)/”
。请注意,最好切换到标准ISO8601格式。另请注意,它具体是“asp.net json日期格式”。JSON本身没有定义日期格式,因此没有“JSON日期格式”这样的东西。