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日期格式”这样的东西。