wordpress 无法比较自定义格式的ACF字段日期

ny6fqffe  于 2023-05-06  发布在  WordPress
关注(0)|答案(2)|浏览(178)

我试图检索我的2个日期(开始日期和结束日期),并在WordPress中以相同的格式获得它们之间的差异。
我的ACF DatePicker字段返回:j F, Y,即20 september, 2021
我尝试了ACF方法,但它给了我一个错误。

$start_date = get_field('start_date');
    $date = DateTime::createFromFormat('j F, Y', $start_date);
    echo $date->format('j F, Y');

   Uncaught Error: Call to a member function format() on bool

为什么它不工作?

kx5bkwkv

kx5bkwkv1#

可能没有为ACF 'start_time'字段正确设置返回类型。可能值得在自定义字段设置中检查这一点。
你可以尝试的另一件事是在将get_field(“start_time”)传递给格式化的之前,将get_field(“start_time”) Package 在strtotime()函数中。
看看这个吧。https://stackoverflow.com/a/6239010/4172254

o75abkj4

o75abkj42#

如果将日期转换为整数,则比较日期将起作用。但是,您需要使用str_replace()从日期字符串中删除,,然后使用strtotime()将其转换为整数,然后可以使用该整数与自定义日期进行比较。例如,使用您提供的日期:

$date = strtotime(str_replace(',','','20 september, 2021'))

注意如果您希望将两个日期都转换为整数,则还需要使用上述相同的过程将自定义日期转换为整数。

例如,将上面的日期与今天的日期进行比较,结果如下所示:

$date = strtotime(str_replace(',','','20 september, 2021'));
$current_date = str_replace(',','',date("D d, F Y"));

if ($date < $current_date ) {
    echo "The date '$date' is less than today's date.";
} else {
    echo "The date '$date' is not less than today's date.";
}

相关问题