【发布时间】:2023-02-10 17:23:54
【问题描述】:
我正在使用此代码,但有时输出结果为 01.01.70。显然我的代码是错误的。但对于我的生活,我不知道在哪里。日期来自名为“datum_event”的日期字段 ACF。
我有两种不同的方式在网站上显示日期。它像 l j F Y 一样加载到事件页面本身(ACF 中设置的 retour 格式)。但我需要它在活动日历中显示 d.m.y。 (不是 ACF 中设置的 retour 格式)。
它工作到某些月份按预期显示 (13.04.23),但其他月份再次显示为 01.01.1970。我真的迷路了。
四月、六月、九月、十一月、十二月表现良好。其他月份出错并显示为 01.01.1970。
所以我最终得到了这段代码:
if ( function_exists( 'get_field' ) ) {
$date = get_field( 'datum_event' );
$date_parts = explode(" ", $date, 2);
if ( isset($date_parts[1]) && is_string( $date ) ) {
$html .= '
' . date( 'd.m.y', strtotime( $date_parts[1] ) ) . '
';
}
}
【问题讨论】:
-
听起来 strtotime 在某些情况下根本不“理解”您的显示格式。此时您不应该尝试使用已经格式化的值。尝试将
get_field的第三个参数设置为 false,以获取未格式化的值。 (然后使用完整的东西,没有任何爆炸。)
标签: php wordpress datetime advanced-custom-fields strtotime