PHP日期时间差异的If-else语句

PHP日期时间差异的If-else语句,php,wordpress,if-statement,Php,Wordpress,If Statement,我正在使用meta_框值(YmdHi)和当前日期和时间打印时差。这个代码对我有用 现在,我还想打印Live何时还有2小时开始活动 如果或其他情况下,我打印时犯了什么错误当前这对我不起作用? $then = date( get_post_meta( get_the_ID(), '_start_eventtimestamp', true ) ) ; $then = new DateTime($then); $now = new DateTime(); $sinceThen = $then->d

我正在使用meta_框值
(YmdHi)
当前日期和时间
打印时差。这个代码对我有用

现在,我还想打印
Live
何时还有2小时开始活动

如果或其他情况下,我打印
时犯了什么错误当前这对我不起作用?

$then = date( get_post_meta( get_the_ID(), '_start_eventtimestamp', true ) ) ;
$then = new DateTime($then);
$now = new DateTime();
$sinceThen = $then->diff($now);

if ($sinceThen > 2 * HOUR_IN_SECONDS){
       echo $sinceThen->d.'days'; 
       echo $sinceThen->h.'hours'; 
       echo $sinceThen->i.'minutes';
 }
else{
        echo 'LIVE';
 }

$sinceThen
是a(这是返回的结果),因此您将
int
对象进行比较,这显然会给您带来意外的结果。要以秒为单位获得差异,请减去
DateTime
实例的时间戳(通过以下方式获得):


现场打印到正确的位置,但现在日期和时间只有此节目有问题(dayshoursminutes)抱歉,您忘记了您仍然使用了
$sinceThen
。我编辑了,现在试试!如何始终获得两位数的值?如果当前输出为
2天2小时2分钟
将其更改为
02天02小时02分钟
@MuhammadArifKamboh use。在
if
块中,粘贴此
echo$sinceThen->format(“%D天、%H小时和%M分钟”),而不是这3个
echo
s
$then = date( get_post_meta( get_the_ID(), '_start_eventtimestamp', true ) ) ;
$then = new DateTime($then);
$now = new DateTime();
$sinceThen = $then->diff($now);
$sinceThenInSeconds = $then->getTimestamp() - $now->getTimestamp();

if ($sinceThenInSeconds > 2 * HOUR_IN_SECONDS){
    echo $sinceThen->d.'days'; 
    echo $sinceThen->h.'hours'; 
    echo $sinceThen->i.'minutes';
}
else{
    echo 'LIVE';
}