[英]Uncaught TypeError: undefined is not a function
我试图找出整个月中两个日期之间的差异,我在Stack Exchange上找到了一个小脚本,但是它一直给我一个错误:“未捕获的TypeError:未定义不是函数”。
我得到的是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>
您的monthDiff()
函数看起来好像希望将Date
对象作为参数传递(它使用.getMonth()
等方法)。 您正在传递字符串。
您不必通过将字符串分配给对象最初所在的变量来修改Date
对象。
您可以在实例化Date
时定义Date
:
function lumpChange(){
var today = new Date(2015, 10, 05),
april5th = new Date(2015, 04, 05);
MonthsLeft = monthDiff(today, april5th); // -6
}
如果您需要在实例化Date
对象后设置日期/时间,则可以使用setter方法 。
文档:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.