我正在使用以下功能从高级自定义字段pro插件获取日期
我的下面的代码显示了选项中的日期
我希望日期格式不同
<!--event_start_date-->
<?php if( get_field('event_start_date') ): ?>
Event start date:
<?php the_field('event_start_date'); ?><br/>
<?php endif; ?>
<!--Event end date-->
<?php if( get_field('event_end_date') ): ?>
Event end date:
<?php the_field('event_end_date'); ?><br/>
<?php endif; ?>
我使用下面的代码来更改格式但不能正常工作,这里the_field('event_start_date');
直接显示没有打印/回显
$new_date = date("d-M-Y", strtotime(the_field('event_start_date')));
echo $new_date;
答案 0 :(得分:0)
直接的方法是使用ob_get_clean()来捕获输出,如下所示:
<!--Event end date-->
<?php if( get_field('event_start_date') ): ?>
Event end date:
<?php
ob_start();
the_field('event_start_date');
$date_string = ob_get_clean();
$new_date = date("d-M-Y", strtotime($date_string));
echo $new_date;
?>
<br/>
<?php endif; ?>
这有点矫枉过正。如果你能在插件中找到一个返回数据而不是输出数据的函数,那就最好了。
通过documentation查看acf插件,函数get_field()执行此操作。
根据acf文档,日期的存储方式略有不同。 https://www.advancedcustomfields.com/resources/date-picker/
$date_string = get_field('event_start_date',false,false)
$date = new DateTime($date_string);
$new_date = $date->format('d-M-Y');
echo $new_date;