Javascript 未捕获类型错误:未定义不是函数

Javascript 未捕获类型错误:未定义不是函数,javascript,google-chrome,Javascript,Google Chrome,我试图找出整整几个月内两个日期之间的差异,我在Stack Exchange上找到了一个小脚本,但它一直给我一个错误“Uncaught TypeError:undefined不是函数” 我在chrome中得到这个,它是一个相当简单的HTML页面 它似乎不喜欢函数的第一行(var monthslight=to.getMonth()等) (为清晰起见,稍微简化了版本:) 函数monthDiff(从,到){ var monthslight=to.getMonth()-from.getMonth()+(

我试图找出整整几个月内两个日期之间的差异,我在Stack Exchange上找到了一个小脚本,但它一直给我一个错误“Uncaught TypeError:undefined不是函数”

我在chrome中得到这个,它是一个相当简单的HTML页面

它似乎不喜欢函数的第一行(var monthslight=to.getMonth()等)

(为清晰起见,稍微简化了版本:)


函数monthDiff(从,到){
var monthslight=to.getMonth()-from.getMonth()+(12*(to.getFullYear()-from.getFullYear());
如果(到.getDate()
您的
monthDiff()
函数看起来似乎希望
Date
对象作为参数传递(它使用
.getMonth()
等方法)。你在传递信息

不能通过将字符串指定给对象最初所在的变量来修改
Date
对象

实例化日期时,您可以定义日期:

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

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

如果实例化后需要设置
date
对象的日期/时间,可以使用

文档:


您已将两个字符串传递到
monthDiff()
,在那里它看起来需要日期对象。@George,很抱歉我在那里过于简化了一点,编辑为包含var DeclarationSAHh是的,排序,我没有意识到我正在做的是将日期变量重新标注为字符串,谢谢!
function lumpChange(){
    var today = new Date(2015, 10, 05),
        april5th = new Date(2015, 04, 05);

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