конвертация формата даты пользовательского поля

14 мар. 2011 г., 22:06:00
Просмотры: 24.7K
Голосов: 1

Я использую плагин More Fields, который дает мне возможность создавать дату в формате YYYY/mm/dd, и я хочу преобразовать её для отображения в виде: February 11, 2011

Это возможно?

0
Все ответы на вопрос 3
6

У вас есть проблема именно с конвертацией или извлечением даты? Конвертация проста и выполняется на чистом PHP:

date('F j, Y', strtotime($date));

Для более сложных и специфичных для WordPress решений с поддержкой локализации смотрите функцию date_i18n().

14 мар. 2011 г. 22:53:30
Комментарии

Rarst, вроде бы всё правильно, но у меня не получается заставить это работать на 100%.
$date = meta('event_date'); echo date('F j, Y', strtotime($date)); возвращает January 1 1970.... есть идеи?

tjsherrill tjsherrill
16 мар. 2011 г. 00:35:16

@tjsherrill хм, я не думаю, что meta() это нативная функция?.. Ты уверен, что получаешь корректное строковое значение в $date?

Rarst Rarst
16 мар. 2011 г. 00:40:29

Разобрался, meta(); это теговый шаблон, предоставляемый плагином more-fields. Я просто использовал get_post_meta и всё заработало отлично. спасибо

tjsherrill tjsherrill
18 мар. 2011 г. 17:28:27

У меня это не работает. Мое произвольное поле называется "date-time-last" $date = get_post_meta('date-time-last'); echo date('l jS F Y', strtotime($date));

Pete Pete
11 апр. 2016 г. 11:59:27

@Pete проверь значения, которые ты получаешь и все такое, "не работает" - это немного расплывчато. :)

Rarst Rarst
11 апр. 2016 г. 12:29:46

Извини за расплывчатость, я только что понял это после 5-й правки, поэтому не смог дальше обновлять... Я постоянно получал "1 января 1970". В любом случае я нашел рабочее решение... <?php $date = get_post_meta($post->ID, 'date-time-last', true); if($date != ''){echo date("l jS F Y", strtotime($date));} ?>

Pete Pete
11 апр. 2016 г. 12:50:15
Показать остальные 1 комментариев
0

Это работает у меня (внутри цикла)...

<?php $date = get_post_meta($post->ID, 'CUSTOM-FIELD-HERE', true); if($date != ''){echo date("l jS F Y", strtotime($date));} ?>
11 апр. 2016 г. 15:22:28
0
<?php
$date = '2000/10/28';
$a = preg_split ( '/\//', $date );
echo date('F j, Y', mktime( 0, 0, 0, $a[1], $a[2], $a[0] ) );
14 мар. 2011 г. 22:38:47