为什么我在这里收到无效日期和NaN?

时间:2011-12-01 12:33:43

标签: javascript

var now = new Date;
var timenow = [now.getHours(),now.getMinutes(),now.getSeconds()].join(':');
var date1 = '2011/11/30';
var dat = new Date(date1 +timenow);
document.write(dat);
document.write(Date.parse(dat));

我从我的服务中获取日期字符串,然后追加时间,为什么它会让我无效日期。

4 个答案:

答案 0 :(得分:4)

您在日期之后错过了一个空格,因此您尝试解析2011/11/3013:44:02而不是2011/11/30 13:44:02之类的内容。

var now = new Date;
var timenow = [now.getHours(),now.getMinutes(),now.getSeconds()].join(':');
var date1 = '2011/11/30 ';
var dat = new Date(date1 + timenow);
document.write(dat);
document.write(Date.parse(dat));

答案 1 :(得分:0)

试试这个

var now = new Date;
var timenow = [now.getHours(),now.getMinutes(),now.getSeconds()].join(':');
var date1 = '2011/11/30';
var dat = Date(date1 + timenow);
document.write(dat);

Here是工作小提琴

答案 2 :(得分:0)

因为他无法正确解析。看一下这个例子:Example

新日期=> ()失踪。

on var dat缺少空格。

答案 3 :(得分:0)

您要加载到date1 + timenow构造函数中的Date字符串看起来像这样:

2011/11/3014:34:53

根据Date.parse方法,这不是有效的日期规范(使用Date构造函数,这相当于调用parse),因此您获得的结果无效。这样做:

var dat = new Date(date1.replace(/\//g, '-') + "T" + timenow);

这使您的字符串看起来像2011-11-30T14:34:53,这是parse支持的格式。