-3

笑申し訳ありませんが、誤って投稿しました

私はJavaScriptを初めて使用し、終了日と今日のサーバーの日付の違いを表示する簡単なカウントダウンスクリプトを作成しようとしています。

これが私がやろうとしていることの素晴らしい例ですhttp://moblog.bradleyit.com/2009/06/javascripting-to-find-difference.html

追加したいのは、計算された秒数を持つ別の変数だけです。どうやってやるの?

コードは次のとおりです。

    var today = new Date();
     var Christmas = new Date( "12-25-2009");
     var diffMs =(クリスマス-今日); //今からクリスマスまでのミリ秒
     var diffDays = Math.round(diffMs / 86400000); // 日々
     var diffHrs = Math.round((diffMs%86400000)/ 3600000); // 時間
     var diffMins = Math.round(((diffMs%86400000)%3600000)/ 60000); // 分
     alert(diffDays + "days、" + diffHrs + "hours、" + diffMins + "Minutes until Christmas 2009 =)");

4

3 に答える 3

2

このコードには 2 つの問題があります。

1: ブラウザ間で受け入れられる日付を使用する必要があるため、- の代わりに / を使用してフォーマットする必要があります。

2: 四捨五入しています。四捨五入すると、不正確な数値が得られます。すべての数値を切り捨てる必要があります。これが関数です。

var roundDown = function(num){
    var full = num.toString();
    var reg = /([\d]+)/i;
    var res = reg.exec(full);
    return res[1];
}

したがって、最終的なコードは次のようになります。

var roundDown = function(num){
    var full = num.toString();
    var reg = /([\d]+)/i;
    var res = reg.exec(full);
    return res[1];
}

var today = new Date(); // date and time right now
var goLive = new Date("06/01/2013"); // target date
var diffMs = (goLive - today); // milliseconds between now & target date
var diffDays = roundDown(diffMs / 86400000); // days
var diffHrs = roundDown((diffMs % 86400000) / 3600000); // hours
var diffMins = roundDown(((diffMs % 86400000) % 3600000) / 60000); // minutes
var diffSecs = roundDown((((diffMs % 86400000) % 3600000) % 60000) / 1000 ); // seconds
于 2013-03-08T13:40:09.933 に答える
0
var endDate = new Date(year, month, day, hours, minutes, seconds, milliseconds);
var today = Date.now()
var timeLeft = endDate - today // timeLeft would be in milliseconds
// Parse this into months, days, hours, ...

これを関数に入れて、 を使用して毎秒程度呼び出されるように設定しsetIntervalます。

于 2012-08-21T13:54:34.243 に答える
0

これにより、JavaScript の日付オブジェクトとそれに関連付けられたメソッドを使い始めることができます。 http://www.w3schools.com/jsref/jsref_obj_date.asp

また、setInterval() メソッドを調べて、設定された間隔でコードを起動できるようにします (たとえば、カウントダウン テキストの更新)。

于 2012-08-21T13:55:25.467 に答える