• 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 );
  • 相关阅读:
    C语言-typedef和#define
    C语言-指针
    C语言-数据结构-结构体
    数据结构笔记
    树的存储结构
    树的基本知识
    关于矩阵
    LaTex
    札记-碎碎念
    一个大神的个人博客 博客桌面风格很棒 二次元
  • 原文地址:https://www.cnblogs.com/yf-html/p/7573226.html
Copyright © 2020-2023  润新知