0

この機能は Chrome では機能しますが、IE や Safari では機能しません。何が間違っていますか?

function countdown(){
    var dDay = new Date().getUTCDate() + 1;
    var dMonth = new Date().getUTCMonth() + 1;
    var dYear = new Date().getUTCFullYear();
    var BigDay = new Date(dYear+ ", " +dMonth+ ", " +dDay+ ",00:00:00");
    var msPerDay = 24 * 60 * 60 * 1000;
    var today = new Date();
            var timeLeft = (BigDay.getTime() - today.getTime());

            var e_daysLeft = timeLeft / msPerDay;
            var daysLeft = Math.floor(e_daysLeft);

            var e_hrsLeft = (e_daysLeft - daysLeft)*24;
            var hrsLeft = Math.floor(e_hrsLeft);

            var e_minsLeft = (e_hrsLeft - hrsLeft)*60;
            var minsLeft = Math.floor(e_minsLeft);

            var e_secsLeft = (e_minsLeft - minsLeft)*60;
            var secsLeft = Math.floor(e_secsLeft);
            if(daysLeft.toString().length === 1){
              daysLeft = "0"+daysLeft;
            } 
            if(hrsLeft.toString().length === 1){
              hrsLeft = "0"+hrsLeft;
            } 
            if(minsLeft.toString().length === 1){
              minsLeft = "0"+minsLeft;
            } 
            if(secsLeft.toString().length === 1){
              secsLeft = "0"+secsLeft;
            } 

            timeString = daysLeft + ":" + hrsLeft + ":" + minsLeft + ":" + secsLeft;
            return timeString;     
    }

これを使用してカウンターを印刷します

window.setInterval(function(){
           $('#countdown').html("Time left: "+ countdown());
        }, 1000);

これは私がChromeで得た結果です:

Time left: 00:01:55:15

そして、これは私がIEとSafariで得た結果です:

Time left: NaN:NaN:NaN:NaN
4

1 に答える 1

2

私はあなたが無効な日付オブジェクトを構築しているためだと思います:

var BigDay = new Date(dYear+ ", " +dMonth+ ", " +dDay+ ",00:00:00");

ドキュメント: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

月は次のように表されます。

1 月の 0 から 12 月の 11 までの、月を表す整数値。

今日に 1 日だけ追加したいので、次のコードを変更してみてください。

var BigDay = new Date();
BigDay.setDate(BigDay.getDate() + 1);
BigDay.setHours(0, 0, 0, 0);

デモ: http://jsfiddle.net/IrvinDominin/HgUhq/

于 2013-08-16T20:20:32.613 に答える