2017-05-23 15 views
0

2つのテキストフィールド(開始時刻と終了時刻)を持つページがあります。HTML5の時間要素を使用しています。開始時刻を常に検証する必要があります。現在、jQueryを使用して時間範囲を検証する

function checkTimings(source, argument) { 
        var sTime = new Date("01/01/0001 " + $("[id$=txtStartTimings]").val()); 
        var eTime = new Date("01/01/0001 " + $("[id$=txtEndTimings]").val()); 
        argument.IsValid = sTime < eTime; 
       } 

いずれかのタイミングの両方が、AMまたはPMですが、開始時刻がPMと終了時刻が同様11.45午後12.15 AMにAMになりますでしょう一つのケースがあります。この作品は、ここでの検証は失敗します。

誰もこの状況をどのように処理できるかを提案できますか?

+0

am | pm – Mithun

+0

をチェックせずに日付と時刻を考慮してタイムスタンプを使用して検証する必要があります。 –

答えて

0

計算を実行する前に24時間形式に変換することはできますか?

function checkTimings(source, argument) { 
       var sTime = new Date("01/01/0001 " + $("[id$=txtStartTimings]").GetHours()); 
       var eTime = new Date("01/01/0001 " + $("[id$=txtEndTimings]").GetHours()); 
       argument.IsValid = sTime < eTime; 
      } 
+0

時刻形式を24時間に変換して午後11時45分が23に変換されるため、 :45と12:00 AM〜00:00ここでもう一度開始時刻が終了時刻よりも大きい。 – Abbas

+0

あなたは前日と考えていた時間範囲にあるかどうかをチェックし、範囲内にある場合はその日に+1を加えますか? –

+0

ここで私はその日を扱っていませんが、時間のためだけに、ユーザーは時間を設定します。 – Abbas

0

実際の日付を取得するには、データコンストラクタで直接日付を渡すことができます。

function checkTimings(source, argument) { 
        var sTime = new Date($("[id$=txtStartTimings]").val()); 
        var eTime = new Date($("[id$=txtEndTimings]").val()); 
        argument.IsValid = sTime < eTime; 
      } 

問題が解決しない場合は、テキストフィールドで日付の書式を変更するか、js関数で日付を解析することもできます。

関連する問題