在JS

2013-11-21 59 views
-1

類錯誤我輸入以下代碼在JS

var curdte=new Date(); 
var curdteyr=curdte.getYear(); 
var curdtemh=curdte.getMonth();  
var curdtedy=curdte.getDay(); 
var dtecurr=(curdtedy "-" curdtemh "-" curdteyr);  
var fyear1=fromdat1.substring(6,10,10);  
var fmonth1=fromdat1.substring(3,5,10);  
var fday1=fromdat1.substring(0,2,10); 
var fmdiff=(fday1 "-" fmonth1 "-" fyear1);  
var frmdate1=(fyear1 "-" fmonth1 "-" fday1);  
var tyear1=todat1.substring(6,10,10); 
var tmonth1=todat1.substring(3,5,10); 
var tday1=todat1.substring(0,2,10);  
var todiff=(tday1 "-" tmonth1 "-" tyear1);  
var todate3=(tyear1 "-" tmonth1 "-" tday1);  
var oneday=24*60*60*1000; 
var frmdiff=new Date(Math.ceil(dtecurr.getTime()-fmdiff.getTime())/oneday); 

然後我得到的錯誤:

TypeError: dtecurr.getTime is not a function

+0

我很奇怪,爲什麼你不給'的SyntaxError

var dtecurr = new Date(); 

,然後設置值:意外string' .... – 0xc0de

回答

0

dtecurr是一個字符串。僅僅因爲它被格式化爲用戶友好的日期,並不意味着它是Date的一個實例。

3

這是因爲dtecurr不是日期對象,它應該是一個格式化的字符串,但缺少連接的+。我通過dtecurr到Date.parse,應建立一個有效的Date對象上調用getTime

var frmdiff=new Date(Math.ceil(Date.parse(dtecurr).getTime()-fmdiff.getTime())/oneday); 
+0

對Date.parse()爲+1 +1 –

0

我想你想

var dtecurr=new Date(curdtedy + "-" + curdtemh + "-" + curdteyr); 

,而不是

var dtecurr=(curdtedy "-" curdtemh "-" curdteyr);  
+1

即使使用正確的字符串連接,「getTime」仍然是一個字符串,而不是「Date」對象 –

+0

@Rob M.:Right,fixed :)。 – 0xc0de

+0

我想知道代碼是如何得到足夠的信息來給他那個錯誤:P –

0

那是因爲dtecurr不是這裏的Date對象。

使它成爲一個Date對象:通過以下方法setDate()setMonth()setFullYear()