2014-10-17 102 views
1

我试图在整个月中找到2个日期之间的差异,我在Stack Exchange上发现了一个小脚本,但它一直给我一个“Uncaught TypeError:undefined不是一个错误功能”。Uncaught TypeError:undefined不是函数

我用chrome获得这个,它是一个相当简单的HTML页面。

它似乎并不像函数的第一行(VAR monthsLeft = to.getMonth()等...)

(略微简化的版本为清楚起见:)

<script> 
function monthDiff(from, to) { 
    var monthsLeft = to.getMonth() - from.getMonth() + (12 * (to.getFullYear() - from.getFullYear())); 
    if(to.getDate() < from.getDate()) { 
     monthsLeft--; 
    } 
    return monthsLeft; 
    } 


function lumpChange() { 

     var today = new Date(); 
     var april5th = new Date(); 
     var MonthsLeft = 0; 

     today = '10/05/2015'; 
     april5th = '04/05/2015'; 
     MonthsLeft = monthDiff(today, april5th); 
    } 

</script> 
+0

你已经通过了两个字符串'monthDiff()',它看起来期望Date对象。 – George 2014-10-17 15:41:35

+0

@George,对不起,我在那里过度简化了一些,包括var declerations – 2014-10-17 15:43:35

+0

啊,是的,排序,我没有意识到我正在做的是重新确定日期var的字符串,Thankyou尺寸! – 2014-10-17 15:51:34

回答

1

您的monthDiff()函数看起来好像它期望Date对象作为参数传递(它使用的方法如.getMonth()等)。你正在传递字符串。

你不给变量赋值字符串修改Date对象的对象本来是

实例化时,它可以定义Date

function lumpChange(){ 
    var today = new Date(2015, 10, 05), 
     april5th = new Date(2015, 04, 05); 

    MonthsLeft = monthDiff(today, april5th); // -6 
} 

JSFiddle

如果您在实例化对象后需要设置对象Date的日期/时间,则可以使用setter methods

文档:

相关问题