最近做年度活动报名H5页面,用于安卓和IOS中。测试时发现安卓没有问题,IOS下没有地行实际的效果。用IOS调试工具调试发现js指定日期转换时间戳出现问题,在Safari或IE下值为NaN。原来代码里面直接用了new Date(endTimestamp).getTime()转换时间戳。
注意:指定一个具体的时间转换时间戳,需要yyyy/mm/dd hh:ii:ss格式,yyyy-mm-dd在IE和Safari下是有问题的。
修改后代码为:
[codesyntax lang=”javascript”]
function splitTimeEnd(startTimestamp, endTimestamp) {
startTimestamp = startTimestamp.replace(/\-/g, '/');
endTimestamp = endTimestamp.replace(/\-/g, '/');
var now = new Date(),
startTime = new Date(startTimestamp),
endDate = new Date(endTimestamp),
isStart = startTime.getTime() - now.getTime(),
isEndTime = endDate.getTime() - now.getTime(),
btnTxt;
if (isStart > 0) {
btnTxt = "报名未开始";
$('#btn').attr('title', btnTxt).html(btnTxt).addClass('dis');
}
if (isEndTime <= 0) {
btnTxt = "报名已结束";
$('#btn').attr('title', btnTxt).html(btnTxt).addClass('dis');
window.clearInterval(timer);
}
}
var timer = window.setInterval(function() {
splitTimeEnd(startTimestamp, endTimestamp);
}, 1000);
[/codesyntax]
