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

Javascript 专栏收录该内容
72 篇文章 0 订阅

需求和思路

 需求文件
需要重点是这个 结束时间 要展示倒记时。思路是用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();

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

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值