js 中使用 时间datetime 类型到前端iOS 不兼容问题

需求和思路

js 中使用 时间datetime 类型到前端iOS 不兼容问题_第1张图片
需要重点是这个 结束时间 要展示倒记时。思路是用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();

这个函数取得是客户端时间 这样做是不妥当的,如果是秒杀等需求大的 不可以这么做。修改本地当前时间 就可以抢到东西!!! 都取系统时间 然后对结果做减法 然而相应的 后台做处理的时间会影响 倒计时的准确性!!所以该怎么做该需要思考!

你可能感兴趣的:(Javascript)