最近做年度活动报名H5页面,用于安卓和IOS中。测试时发现安卓没有问题,IOS下没有地行实际的效果。用IOS调试工具调试发现js指定日期转换时间戳出现问题,在Safari或IE下值为NaN。原来代码里面直接用了new Date(endTimestamp).getTime()转换时间戳。
注意:指定一个具体的时间转换时间戳,需要yyyy/mm/dd hh:ii:ss
格式,yyyy-mm-dd
在IE和Safari下是有问题的。
修改后代码为:
- 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);