Dateオブジェクトのドキュメントを見てください。
getTime
普遍的な時間に従って、指定された日付の時間に対応する数値を取得できる方法があります。つまり、getTime
メソッドによって返される値は、1970年1月1日00:00:00UTCからのミリ秒数です。
つまり、次のことができます。
if (departureDate.getTime() > arrivalDate.getTime()) {
// Do something
}
次の方法で日付を宣言した場合:
var departureDate = new Date(Date.UTC(year, month, day, hour, minute, second))
arrivalDate = new Date(Date.UTC(year, month, day, hour, minute, second))
タイムゾーンを尊重するようにします。ただし、UTC日付を指定する必要があります。Javascriptには、これよりも優れたタイムゾーンを処理するための組み込みの方法がありません。私の最初の文がそれを述べているように、Dateオブジェクトに関するドキュメントを見てください。
編集:チャットであなたと話した後、これがあなたが望むと思うものです:
あなたが持っていることによると:
var orgti = document.getElementById('orginTimeZone').value;
var desct = document.getElementById('descTimeZone').value;
var selfwDepDate = document.forms[0].fwDepartureDate.value;
var selfwDepTime = document.forms[0].fwDepartureTime.value;
var selfwArrDate = document.forms[0].fwArrivalDate.value;
var selfwArrTime = document.forms[0].fwArrivalTime.value;
これを実行して、両方の日付を比較できます。
var departureDate = new Date( Date.UTC( selfwDepDate + selfwDepTime ) ) // This creates a date with what you got
var arrivalDate = new Date( Date.UTC( selfwArrDate + selfwArrTime ) ) // This too
// Now the tricky part: you substract the timezone, so that you get the same referential for both dates
departureDate = departureDate.getTime() - ( orgit * 3600000 ) // Multiplying by 3600000 to transform hours into milliseconds since "getTime" returns milliseconds
arrivalDate = arrivalDate.getTime() - ( desct * 3600000 ) // Same
// Now, you've got two timestamps based on dates with the same referential. You can use:
if ( departureDate > arrivalDate ) {
// Do something
}