需求和思路
需要重点是这个 结束时间 要展示倒记时。思路是用setTimeout()函数做。
遇到的问题
数据库传过来的日期类型在IOS 不能正确解析
代码
//倒计时函数 一秒钟执行一次
setInterval(daojishi,1000);
//倒计时函数 用each 遍历所有需要处理的时间
function daojishi(){
$(".truetime").each(function(){
var end= $(this).html();
var end_on=formatStr(end);//解决ios手机不兼容问题
var curtime=new Date();
var endtime=new Date(end_on);
var lefttime= parseInt((endtime.getTime()-curtime.getTime())/(1000));
if (lefttime>0) {
var day=parseInt(lefttime/(24*60*60));
var hours=parseInt( (lefttime/(60*60))%24);
var minutes=parseInt( (lefttime/(60))%60);
var seconds=parseInt( (lefttime)%60);
hours =checkout(hours);
minutes =checkout(minutes);
seconds =checkout(seconds);
var title =day+' 天 '+hours+' 小時 '+minutes+' 分 '+seconds+' 秒 ';
}else{
var title="时间结束"
}
$(this).next('span').html(title);
});
};
出现的问题
数据库拿出来的时间是 2016-06-08 这种时间iOS并不兼容 出现未定义的时间格式 所以用下面的函数转一下 成2016/06/08
解决办法
function formatStr(str) {
str=str.replace(/-/g,"/");
};
对程序的思考
倒计时中使用了
var curtime=new Date();
这个函数取得是客户端时间 这样做是不妥当的,如果是秒杀等需求大的 不可以这么做。修改本地当前时间 就可以抢到东西!!! 都取系统时间 然后对结果做减法 然而相应的 后台做处理的时间会影响 倒计时的准确性!!所以该怎么做该需要思考!
本文介绍了一种在iOS设备上解决日期格式兼容问题的方法,并通过JavaScript实现了精确的倒计时功能。讨论了使用客户端时间可能带来的问题,并提出了改进方向。
1460

被折叠的 条评论
为什么被折叠?



