若setInterval要调用的方法写在window.onload匿名方法内,执行setInterval会报方法未定义错误。
解决办法:将方法放到window.onload匿名方法外部或直接setInterval直接调用一个匿名函数
例:
如下代码会报updategetYMDhms方法没有定义的错误
window.onload = function() {
var start = '2018/09/09 8:0:0';
var end = '2018/09/29 8:0:0'
var count = 0;
function updategetYMDhms(start, end) {
count += 1;
var date1 = new Date(start);
var date2 = new Date(end);
var s1 = date1.getTime();
var s2 = date2.getTime();
var total = (s2 - s1) / 1000 - count;
var day = parseInt(total / (24 * 60 * 60)); //计算整数天数
var afterDay = total - day * 24 * 60 * 60; //取得算出天数后剩余的秒数
var hour = parseInt(afterDay / (60 * 60)); //计算整数小时数
var afterHour = total - day * 24 * 60 * 60 - hour * 60 * 60; //取得算出小时数后剩余的秒数
var min = parseInt(afterHour / 60); //计算整数分
var afterMin = total - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60;
$('.underlineTime').text(day + ' 天 ' + hour + ' 时 ' + min + ' 分 ' + afterMin + ' 秒');
}
updategetYMDhms('2018/09/09 8:0:0', '2018/09/29 8:0:0')
setInterval("updategetYMDhms(start,end)", 1000)
}
解决方法:
把方法放到window.onload匿名方法外
var start = '2018/09/09 8:0:0';
var end = '2018/09/29 8:0:0'
var count = 0;
function updategetYMDhms(start, end) {
count += 1;
var date1 = new Date(start);
var date2 = new Date(end);
var s1 = date1.getTime();
var s2 = date2.getTime();
var total = (s2 - s1) / 1000 - count;
var day = parseInt(total / (24 * 60 * 60)); //计算整数天数
var afterDay = total - day * 24 * 60 * 60; //取得算出天数后剩余的秒数
var hour = parseInt(afterDay / (60 * 60)); //计算整数小时数
var afterHour = total - day * 24 * 60 * 60 - hour * 60 * 60; //取得算出小时数后剩余的秒数
var min = parseInt(afterHour / 60); //计算整数分
var afterMin = total - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60;
$('.underlineTime').text(day + ' 天 ' + hour + ' 时 ' + min + ' 分 ' + afterMin + ' 秒');
}
window.onload = function() {
updategetYMDhms('2018/09/09 8:0:0', '2018/09/29 8:0:0')
setInterval("updategetYMDhms(start,end)", 1000)
}
或者直接执行一个匿名函数
window.onload = function() {
setInterval(function() {
count += 1;
var date1 = new Date(start);
var date2 = new Date(end);
var s1 = date1.getTime();
var s2 = date2.getTime();
var total = (s2 - s1) / 1000 - count;
var day = parseInt(total / (24 * 60 * 60)); //计算整数天数
var afterDay = total - day * 24 * 60 * 60; //取得算出天数后剩余的秒数
var hour = parseInt(afterDay / (60 * 60)); //计算整数小时数
var afterHour = total - day * 24 * 60 * 60 - hour * 60 * 60; //取得算出小时数后剩余的秒数
var min = parseInt(afterHour / 60); //计算整数分
var afterMin = total - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60;
$('.underlineTime').text(day + ' 天 ' + hour + ' 时 ' + min + ' 分 ' + afterMin + ' 秒');
}, 1000);
}
网友评论