计算飞行时间

Nik*_*Nik 2 timezone

我现在正在开发一个函数来计算飞行时间.我有一个非常奇怪的问题,因为它对我来说是一个新域名.

这是一个例子:

外展:25.02.2011 11:45科隆 - 拉斯维加斯26.02.2011 21:18

返回:18.03.2011 09:49拉斯维加斯 - 科隆19.03.2011 11:05

对于这次飞行,Kayak正在向外展示:18:33小时返回:17:16小时

科隆是GMT +01:00拉斯维加斯是America/Los_Angeles时区 - > -08:00

但是在这个例子中,向外飞行的飞行durariion计算为拉斯维加斯的-8小时偏移和拉斯维加斯的7小时偏移的返回飞行.为什么?

我在这里看到了时区:http://download.geonames.org/export/dump/timeZones.txt

有谁有任何想法?

谢谢Nik

Han*_*son 5

这是因为夏令时不会在同一天开始.

拉斯维加斯:DST于2011年3月13日
星期日开始科隆:DST于2011年3月27日星期日开始

因此,由于您的回程航班是在3月18日,拉斯维加斯将在夏令时,但科隆不会.


Nik*_*Nik 5

好的,我解决了问题。感谢您建议先将两个日期转换为 UTC/GMT。

这是诀窍:

$reset_timezone = date_default_timezone_get();

// 转换第一时间 date_default_timezone_set($timezone_identifier1); $time1 = $date_from。' '.$time_from; $gmtime1 = gmdate('Ymd H:i', strtotime($time1));

// 转换第二个时间 date_default_timezone_set($timezone_identifier2); $time2 = $date_to.' '.$time_to; $gmtime2 = gmdate('Ymd H:i', strtotime($time2));

// 再次重置时区 date_default_timezone_set($reset_timezone);

--> 这里计算差值 < --

希望它可以帮助其他人!

干杯尼克