看看Date object文档。
有getTime
方法,它允许您根据通用时间获取与指定日期的时间相对应的数值。这意味着getTime
方法返回的值是1970年1月1日00:00:00 UTC以来的毫秒数。
这意味着你可以做到以下几点:
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
}
但两个日期的时区是不同的....这就是问题..实际上有三个参数..一个是日期,时间和时区。 – 2012-04-16 09:05:56
考虑到时区,因为'getTime'返回自1970年1月1日UTC以来的毫秒数。如果你在'Date'对象中指定时区,这应该不成问题。 – 2012-04-16 09:08:21
你能否提供完整的函数来进行比较......正如我所说的,我有三个不同的参数在手,日期,时间和时区分开.. – 2012-04-16 09:10:25