zoukankan      html  css  js  c++  java
  • js倒计时功能中newData().getTime()在iOS下会报错,显示 nan

    最近在做移动端项目 ,有个设置开始时间和结束时间,然后倒计时 这个活动还有几天。在安卓上能正确转换时间,但在iOS上不能显示,为NaN-NaN1-NaN  Invalid Date,

      就好比new Date('2017-09-18 14:58:32').getTime();      /  /在ios上死活拿不到时间戳显示NaN

     我也查阅了相关的资料,后来发现:

                原来是低版本的Safari解释new Date('2013-10-21')这个对象不一样,在IOS5中的Safari不支持这种写法,

                 而它支持的写法为new Date('2013','10','21'),这样写就能解决"Invalid Date"的问题

      所以想要正确显示时间在iOS上,应该这么写

      new Date("2010-03-15 10:30:00".replace(/-/g,'/')).getTime();   解决了问题!! 

       然后附上 时间相差的倒计时代码

    //倒计时
    setInterval( function()
    {
    //设置开始时间
    var startTime = ($dp.$( 'time1' ).value.replace( /-/g, '/' ));
    // 当前时间
    var nowTime = new Date().getTime();
    if( new Date( startTime ).getTime() - nowTime > 0 )
    {
    $( "#timeText" ).removeClass( "none" ).html( "未开始" );
    $( ".downTime ul" ).addClass( "none" );
    }
    else
    {
    $( ".downTime ul" ).removeClass( "none" );
    $( "#timeText" ).addClass( "none" );
    var endTime = new Date( $dp.$( 'time2' ).value.replace( /-/g, '/' ) );
    // 相差的时间
    var t = endTime.getTime() - nowTime;
    if( t <= 0 )
    {
    $( ".downTime ul" ).addClass( "none" );
    $( ".downTime #timeText" ).removeClass( "none" ).html( "已结束" );
    return false;
    }
    var d = Math.floor( t / 1000 / 60 / 60 / 24 );

    var h = Math.floor( t / 1000 / 60 / 60 % 24 );
    var i = Math.floor( t / 1000 / 60 % 60 );
    var s = Math.floor( t / 1000 % 60 );
    $( "#d" ).html( d );
    $( "#h" ).html( h );
    $( "#i" ).html( i );
    $( "#s" ).html( s );
    }

    }, 100 );
  • 相关阅读:
    CentOS 7中为Yum设置代理
    在 .NET Core项目中使用UEditor图片、文件上传服务
    Android开发:通过 webview 将网页打包成安卓应用
    ElasticSearch:组合查询或复合查询
    ElasticSearch:常用的基础查询与过滤器
    SpringBoot:Java High Level REST Client 搜索 API
    SpingBoot:整合Elasticsearch7.2.0
    Linux:oracle11.2.0dbca静默建库
    Docker:跨主机通信
    Mysql无法启动情况下,如何恢复数据?
  • 原文地址:https://www.cnblogs.com/yf-html/p/7573226.html
Copyright © 2011-2022 走看看