6

ここにコード

$(document).ready(function() {
    $('#st').change(function(){
        var st = $('#st').val(); // start time Format: '9:00 PM'
        var et = $('#et').val(); // end time   Format: '11:00 AM' 

        //how do i compare time
            if(st > et)
            {
               alert('end time always greater then start time');
            }
    });
});

次のような時間範囲がある場合

Start Time Range (listbox) =   12:00 AM To 11:59PM

End Time Range  (listbox)  =   12:00 AM To 11:59PM

次に、開始時刻が終了時刻よりも小さい、または終了時刻が開始時刻よりも大きいことを検証する方法

Start-time < End-time  OR  End-time > St-time

時間形式が差分ロジックを実装できないため、js コードの時間形式を検討してください

Format: '9:00 AM'
Format: '5:00 PM'
4

5 に答える 5

25

ここで私はこれを調査した後に得ました。Time Format12 Hour-Timeまたは24 Hour-Time
の 場合のベスト プラクティス。

//start time
var start_time = $("#start_time").val();

//end time
var end_time = $("#end_time").val();

//convert both time into timestamp
var stt = new Date("November 13, 2013 " + start_time);
stt = stt.getTime();

var endt = new Date("November 13, 2013 " + end_time);
endt = endt.getTime();

//by this you can see time stamp value in console via firebug
console.log("Time1: "+ stt + " Time2: " + endt);

if(stt > endt) {
    $("#start_time").after('<span class="error"><br>Start-time must be smaller then End-time.</span>');
    $("#end_time").after('<span class="error"><br>End-time must be bigger then Start-time.</span>');
        return false;
}
于 2013-01-15T13:31:32.487 に答える
4

文字列を時間的に比較できる値に変換する必要があります。Date.parse日付も渡す必要がありますが、便利です。時間だけを気にするので、両方に同じ偽の日付を使用します。

if(Date.parse("1-1-2000 " + st) > Date.parse("1-1-2000 " + et)) {
于 2012-06-28T12:49:27.977 に答える
3

次の jquery ルールを試すこともできます: jQuery.validator.addMethod

   jQuery.validator.addMethod("timeValidator",
   function (value, element, params) {
   var val = new Date('1/1/1991' + ' ' + value);       
   var par = new Date('1/1/1991' + ' ' + $(params).val());
   if (!/Invalid|NaN/.test(new Date(val))) {
           return new Date(val) > new Date(par);
       }

       return isNaN(val) && isNaN(par)
           || (Number(val) > Number(par));
}, 'End Time must be greater than Start Time.');

ルールを呼び出すことができます:

$("#txtToTime").rules('add', { timeValidator: "#txtFromTime" });
于 2015-01-23T08:35:46.977 に答える
1

それらが選択要素であり、選択要素内の順序が同じ場合、selectedIndex を比較します。日付を解析する必要はありません。

于 2012-06-28T13:10:23.143 に答える
0

それらを Date オブジェクトに変換します。

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date

次に、通常のコンパレータを使用します。

JavaScript で 2 つの日付を比較する

于 2012-06-28T12:51:57.333 に答える