Как получить первые 3 символа из месяца выбора даты ACF? - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь отформатировать дату, которую я получаю, из поля выбора даты ACF. В настоящее время он возвращает дату как ('F d, y') и отображается как 16 октября 2018 года. Однако я хотел бы, чтобы она отображалась как 16 октября 2018.

Как правило, полоса месяца удаляет только первые 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;
}

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Я исправил это, позволив ACF вернуть мне пользовательский формат с ('M j, Y').

0 голосов
/ 01 ноября 2018

Эй, после получения поля с

$date = get_field('date', false, false);

Вы можете создать новый php DateTime объект с этой даты

$date = new DateTime($date);

, а затем используйте встроенную функцию формата php

$date->format('M j, Y');

опция M автоматически дает инициалы месяца

...