date — Как разобрать номер определенным образом в переполнении стека

Моя переменная содержит следующее значение.

$value = 20151205

Я хочу разобрать год, месяц и дату из этого значения.

[2015,12,05]

Как я могу сделать это в php?

Этот формат будет зафиксирован как первые 4 цифры для года, затем 2 цифры для месяца и так же для даты.

-2

Решение

Вы можете попробовать строковую операцию: —

<?php
$str1='20151205';
$str1=substr_replace($str1, '/', 4, 0);
$str1=substr_replace($str1, '/', 7, 0);
print_r (explode("/",$str1));
?>
0

Другие решения

$value = 20151205;
$dto = new \DateTime($value);
$newValue = "[" . $dto->format('Y') . "," . $dto->format('m'). "," . $dto->format('d') . ']';
echo $newValue;
3

Использовать date_parse

 $arrDateParse = date_parse("20151205");

вы получите массив, как это

Array
(
[year] => 2015
[month] => 12
[day] => 5
[hour] =>
[minute] =>
[second] =>
[fraction] =>
[warning_count] => 0
[warnings] => Array
(
)

[error_count] => 0
[errors] => Array
(
)

[is_localtime] =>
)


$value = "[" . $arrDateParse['year'] . "," . $arrDateParse['month']. "," . $arrDateParse['day'] . ']';
0

Просто хотел дать другую возможность (другие ответы в этой теме также работают);

$date = date("[Y,m,d]", strtotime('20151205'));

Смотрите также:

http://php.net/manual/en/datetime.formats.date.php (форматы даты, которые работают с strtotime ())

http://php.net/manual/en/function.date.php (функция даты)

0

подход preg_replace (regex):

$value = 20151205;
$parsed = preg_replace('/^([\d]{4})([\d]{2})([\d]{2})$/', '[$1,$2,$3]', $value);

демо:
http://codepad.viper-7.com/28OsIp

0

попробуй этот код

$int="20151205";
$day = substr($int,-1,2);
$month = substr($int,-4,2);
$year = substr($int,0,4);

echo $date = $day.'/'.$month.'/'.$year;
0

Я думаю, что лучшее решение — отформатировать переменную как дату

try {
$value = (new DateTime($value))->format('\[Y\,m\,d\]');
}
catch (Exception $ex) {
echo '$Value is not a date value';
}

Заключите код в блок Try / Catch, чтобы определить, не соответствует ли значение в переменной дате.

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector