【发布时间】:2014-03-10 18:27:15
【问题描述】:
我正在比较两个 DateTime :
//Get the current DateTime
$date_now = new DateTime;
var_dump($date_now); // 2014-03-10 19:04:29
// I need to subtract 12 hours (I'm using $date_past to fetch $db_date in a request)
$date_past = $date_now->sub(new DateInterval("PT12H"));
// Get the DateTime from $db_date just fetched in database
$alert_date = new DateTime($db_date);
var_dump($alert_date); // 2014-03-10 17:04:00 in my test
// Get the difference
$diff = $alert_date->diff($date_now);
var_dump($diff->format("%H:%I:%S")); //09:59:31
所以我得到 09:59:31 和 $diff->invert == 1 这意味着它是一个负值。
我看到了这个问题:php datetime->diff is calcualting wrong amount of hours (3 too much),我认为这是类似的问题,但我找不到继续使用 ->sub() 的解决方案。有什么想法吗?
如果您认为这可能是 TimeZone 问题,我检查了我所有的 DateTime,它们都将 TimeZone 设置为“Europe/Berlin”,所以我认为它不是来自这里。
谢谢!
【问题讨论】:
标签: php datetime datediff date-comparison dateinterval