У меня есть фрагмент кода WP/PHP, и ниже приведены следующие данные: 20150204
<?php echo $datef=get_post_meta($post->ID, 'date_slot', true); ?>
Я хочу использовать разделение кусков и разделить дату с косой чертой: 2015/02/04
Пробовал несколько методов, но это не так просто, как обычное разделение кусков с нормальной строкой, как я хочу, чтобы она появилась, 4/2/2. Пока у меня это:
<?php $datef=get_post_meta($post->ID, 'date_slot', true);
echo chunk_split($datef,4, '/') ?>
Что выводит это: 2015/0204/
$date = DateTime::createFromFormat('Ymd', get_post_meta($post->ID, 'date_slot', true));
echo $date->format('Y/m/d');
Попробуйте вот так:
$dateValue = '20150204';
$time=strtotime($dateValue);
$year=date("Y",$time);
$month=date("m",$time);
$day=date("d",$time);
echo $year."/".$month."/".$day; //Output : 2015/02/04
chunk_split() кажется неправильным инструментом, поскольку он предназначен для разбиения строки на куски одного размера - но ваша дата имеет два разных размера (4, 2, 2).
Поскольку вы работаете с датами, логическое место для поиска - это функции даты. Класс DateTime (PHP 5. 3+) имеет метод createFromFormat(), который позволяет вам скрывать вашу строку даты в объект логической даты, с которым можно работать, включая форматирование с помощью метода format().