如何在日期差异函数中使用变量?

How can I use a variable in a date diff function?

我正在使用 ACF 字段来允许客户内容管理他们下一个事件的倒计时我在桌面版本上使用 JS 翻转时钟但由于它没有响应,我决定使用 date diff 来回显只是移动的天数。

该站点目前在 theindustrialproject.co.uk

上线

我目前的代码是这样的:

<?php
    $date1 = date_create(date());
    $date2 = date_create(the_field('mobile_date'));
    $diff = date_diff($date1,$date2);

    $difference = $diff;

    if ($difference < 0) { $difference = 0; }
    echo '<span class="countdown-mobile">'. floor($difference/60/60/24)."</span><br />";
    if ($difference == 1) { echo "<p>Day</p>"; }
        else { echo "<p>Days</p>"; }
?>

但它总是 returns 0。作为参考,我从 here

中提取了代码

在不知道函数 the_field('mobile_date') 将 return(日期或时间戳?)的情况下,您可能需要更改下面的特定行,但您应该能够使用 DateTime 像这样对象和格式差异

$format='Y-m-d';
$timezone=new DateTimeZone('Europe/London');

/* We need 2 datetime objects - one for now the other for the future date */
$now=new DateTime( date( $format, strtotime('now') ), $timezone );
$target=new DateTime( the_field('mobile_date'), $timezone );

/* Format the difference in days */
$days = $now->diff( $target )->days;

echo "<span class='countdown-mobile'>{$days}</span><br />" . ( $days == 1 ? '<p>Day</p>' : '<p>Days</p>' );