2

わかりました、私はこれについて頭を悩ませることができません.SFに関する非常に多くの投稿を見てきましたが、それを理解することはできません.

開始と終了の 2 つの日付と時刻を比較する必要があります。end が良ければ alert();

Chrome では動作しますが、IE(9) では動作しません (形式: 2013 年 1 月 1 日 10:00)

var stDate = new Date(date +" "+ start);
var enDate = new Date(dateEnd + " "+ end);

        if ( Date.parse ( enDate ) > Date.parse ( stDate ) ) {
            alert('on no');
        }

助けてください、立ち往生しています...

4

3 に答える 3

3

カスタムパーサーを作成するだけで、さまざまなブラウザーがさまざまな時間文字列形式をどのように扱うかを理解しようとするよりも速く完了します。

function parse(datestring){
    var months = {"Jan":0,"Feb":1,"Mar":2,"Apr":3,"May":4,"Jun":5,"Jul":6,"Aug":7,"Sep":8,"Oct":9,"Nov":10,"Dec":11}
    var timearray = datestring.split(/[\-\ \:]/g)
    return Date.UTC(timearray[2],months[timearray[1]],timearray[0],timearray[3],timearray[4])
}

これは Unix 時間をミリ秒単位で返し、UTC を使用するため、夏時間の欠落による複雑さを回避できます。指定した形式で機能しますが、入力は検証されません。

于 2013-01-11T22:10:39.510 に答える
2
if ( enDate.getTime() > stDate.getTime() ) {
    alert('oh no');
}

番号 ( ) へのプッシュは、次のメソッド+enDateを使用するのと同じです。.getTime()

if ( +enDate > +stDate ) {
    alert('oh no');
}
于 2013-01-11T20:52:40.580 に答える
0
var stDate = new Date(date +" "+ start);
var enDate = new Date(dateEnd + " "+ end);

        if ( enDate.getTime() > stDate.getTime() ) {
            alert('on no');
        }

Dateオブジェクトを作成するには:

var d = new Date();
var d = new Date(milliseconds);
var d = new Date(dateString);
var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);

getTime()1970/01/01以降のミリ秒数を返します

于 2013-01-11T20:57:59.247 に答える