我之前发现了一个关于使用时差并获得分钟,小时和天数差异的链接: How to get time difference in minutes in PHP
我正在尝试这个:
$date1 = new DateTime('first day of this month', new DateTimeZone('Europe/Amsterdam'));
$date2 = new DateTime('first day of this month', new DateTimeZone('Europe/London'));
print_r($date1->format('Y-m-d H:i:s'));
print_r($date2->format('Y-m-d H:i:s'));
输出如下:
2013-12-01 13:00:36
2013-12-01 12:00:36
然后用这个:
$diff = $date2->diff($date1);
print_r($diff);
然后我在所有差异中得到0。我想在不使用strtotime的情况下得到两者之间的区别..我是输出0?
答案 0 :(得分:3)
你的期望没有意义,因为没有区别。 2013-12-01 13:00:36阿姆斯特丹和 2013-12-01 12:00:36伦敦是人类历史上完全相同的时间点。您所期望的是伦敦和阿姆斯特丹时区之间的偏移差异(即GMT和GMT + 1相差1),但这与具体时间戳无关。
答案 1 :(得分:1)
您想要计算偏移量。使用DateTimeZone::getOffset()
$dateTimeZoneAmsterdam = new DateTimeZone("Europe/Amsterdam");
$dateTimeZoneLondon = new DateTimeZone("Europe/London");
$dateTimeAmsterdam = new DateTime('first day of this month', $dateTimeZoneAmsterdam);
$dateTimeLondon = new DateTime('first day of this month', $dateTimeZoneLondon);
$timeOffset = $dateTimeZoneAmsterdam->getOffset($dateTimeLondon);
print_r($timeOffset); // 3600
答案 2 :(得分:0)
你很亲密。尝试DateTime :: diff