最近在做移動端項目 ,有個設置開始時間和結束時間,然后倒計時 這個活動還有幾天。在安卓上能正確轉換時間,但在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 );