2011-12-01 85 views
0
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)); 

我從我的服務中獲取日期字符串,然後追加時間,爲什麼它會拋出無效日期。爲什麼我在這裏得到無效日期和NaN?

+3

有時候我很驚訝人們有時候自己做的調試很少。 –

+1

@ 32bitkid爲什麼? Stackoverflow社區可以爲你調試代碼,看看你自己。 – bezmax

+3

你也可以使用日期構造函數; '新的日期(2011年,11 - 1,30,now.getHours(),now.getMinutes(),now.getSeconds());' –

回答

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

還有我不知道Date.parse與個位數秒有多好戲劇和分鐘。將'month','day'設置爲'now',可能會更好,而不是依賴'parse' –

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是工作提琴

0

因爲他不能正確解析。看這個例子:Example

new Date =>()missing。

on var dat缺少空白空間。

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支持的格式。

相關問題