Php 如何将DateTime对象与从字符串创建的DateTime进行比较

Php 如何将DateTime对象与从字符串创建的DateTime进行比较,php,symfony,datetime,Php,Symfony,Datetime,我试图执行一些更新,但前提是某些条件已完成,其中一个与两个日期之间的比较有关:一个是从DB获取并由Symfony2作为DateTime对象返回的,另一个是从循环中获取并转换为DateTime对象的字符串 这是我正在测试的普通代码: $last = new \DateTime('2015-01-21T19:44:25.000Z'); $current = new \DateTime('2015-06-23 22:10:23'); if ($last > $current) { ec

我试图执行一些更新,但前提是某些条件已完成,其中一个与两个日期之间的比较有关:一个是从DB获取并由Symfony2作为DateTime对象返回的,另一个是从循环中获取并转换为DateTime对象的字符串

这是我正在测试的普通代码:

$last = new \DateTime('2015-01-21T19:44:25.000Z');
$current = new \DateTime('2015-06-23 22:10:23');

if ($last > $current) {
    echo 'yes';
} else {
    echo 'no';
}
输出。现在,如果我尝试在OOP中进行如下比较:

$lastModifiedAt = new \DateTime($row['LastModifiedDate']);
$lastSyncAt = $entity->getLastSyncAt();

if ($lastModifiedAt > $lastSyncAt) {
    ....
}
这是
var\u导出($lastModifiedAt)
var\u导出($lastSyncAt)
的输出:

执行总是在条件下进入,为什么?在比较中我做错了什么

编辑

这种行为对我来说很奇怪,但也许是我的代码错了。多亏了@marcin orlowski,我还运行了以下测试:

var_dump($lastModifiedAt == $lastSyncAt);
var_dump($lastModifiedAt > $lastSyncAt);
var_dump($lastModifiedAt < $lastSyncAt);

所以比较是对的,也许在我的代码中还有其他东西,无论如何,thx有一个很好的库来处理与日期时间相关的问题。如果上面提到的情况不是您处理DATETIME的唯一地方,那么我会考虑在某个时间使用碳。

< P>可以使用GETTimeSTAMP():

以及:


返回值是什么:
var_dump($entity->getLastSyncAt())?看到var_dump($lastModifiedAt)可能也很好。可能是重复的嘿,伙计们,我回答了这个问题
var_dump($lastModifiedAt == $lastSyncAt);
var_dump($lastModifiedAt > $lastSyncAt);
var_dump($lastModifiedAt < $lastSyncAt);
bool(false)
bool(false) => this is the comparison I am doing
bool(true)
$date = new DateTime();
echo $date->getTimestamp();
if ($last->getTimestamp() > $current->getTimestamp()) {
    echo 'yes';
} else {
    echo 'no';
}