在js中键入错误

时间:2013-11-21 06:48:54

标签: javascript

我输入以下代码

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不是函数

4 个答案:

答案 0 :(得分:3)

这是因为dtecurr不是Date对象,应该是格式化的字符串,但缺少+用于连接。我已经将dtecurr传递给Date.parse,它应该创建一个有效的Date对象来调用getTime

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

答案 1 :(得分:0)

dtecurr是一个字符串。仅仅因为它的格式类似于用户友好的日期,并不意味着它是Date的实例。

答案 2 :(得分:0)

我想你想要

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

而不是

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

答案 3 :(得分:0)

这是因为dtecurr不是这里的Date对象。

将其设为Date对象:

var dtecurr = new Date();

然后按方法setDate()setMonth()setFullYear()

设置值