我正在尝试格式化从ACF日期选择器字段返回的日期。当前它将日期返回为('F d,y'),并显示为2018年10月16日。但是,我希望将其显示为2018年10月16日。
基本上删除月份字符串以仅显示前3个字符。有什么想法吗?
查看:
@if(!empty($posts))
@include('layouts.posts', $posts)
@else
<p>No Events to show</p>
@endif
layouts.posts
<div class="post-items">
@if ( count($posts) > 0)
@foreach ($posts as $key => $post)
<div class="post-item" >
@if ($post['date'] != '')
<div class="post-item__date">
{!! $post['date'] !!}
</div>
@endif
{!! $post['content']!!}
</div><!-- .post-item -->
@endforeach
@endif
</div>
控制器:
public function posts() {
$posts = [];
foreach ($this->wp_query->posts as $key => $post) {
$posts[$key]['date'] = get_field('acf__event_date', $post->ID);
$posts[$key]['content'] =
'
<h2>'.$post->post_title.'</h2>
<p>'.wp_trim_words(get_post_field('post_content', $post->ID), 30).'</p>
<p><a href="'.get_permalink($post->ID).'" class="button">Read more</a></p>';
}
return $posts;
}
答案 0 :(得分:1)
嘿,在获得该字段之后
$date = get_field('date', false, false);
您可以从该日期开始创建一个新的 php DateTime 对象
$date = new DateTime($date);
然后使用本地php格式功能
$date->format('M j, Y');
M 选项会自动为您提供月份的首字母缩写
答案 1 :(得分:1)
我通过让ACF给我自定义格式返回('M j,Y')来解决了这个问题。