如何在 php 中以特定方式解析 Number
How to parse Number in a specific manner in php
我的变量包含以下值。
$value = 20151205
我想根据这个值解析年月日。
[2015,12,05]
我如何在 php 中执行此操作?
此格式将固定为年份的前 4 位数字,然后月份的 2 位数字和日期的相同格式。
$value = 20151205;
$dto = new \DateTime($value);
$newValue = "[" . $dto->format('Y') . "," . $dto->format('m'). "," . $dto->format('d') . ']';
echo $newValue;
使用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'] . ']';
你可以试试字符串操作:-
<?php
$str1='20151205';
$str1=substr_replace($str1, '/', 4, 0);
$str1=substr_replace($str1, '/', 7, 0);
print_r (explode("/",$str1));
?>
只是想提供另一种可能性(此线程中的其他答案也有效);
$date = date("[Y,m,d]", strtotime('20151205'));
另请参阅:
http://php.net/manual/en/datetime.formats.date.php(适用于 strtotime() 的日期格式)
preg_replace(正则表达式)方法:
$value = 20151205;
$parsed = preg_replace('/^([\d]{4})([\d]{2})([\d]{2})$/', '[,,]', $value);
试试这个代码
$int="20151205";
$day = substr($int,-1,2);
$month = substr($int,-4,2);
$year = substr($int,0,4);
echo $date = $day.'/'.$month.'/'.$year;
我认为最好的解决方案是像这样将变量格式化为日期
try {
$value = (new DateTime($value))->format('\[Y\,m\,d\]');
}
catch (Exception $ex) {
echo '$Value is not a date value';
}
将代码包含在 Try/Catch 块中,以检测变量中的值是否与日期不对应。
我的变量包含以下值。
$value = 20151205
我想根据这个值解析年月日。
[2015,12,05]
我如何在 php 中执行此操作?
此格式将固定为年份的前 4 位数字,然后月份的 2 位数字和日期的相同格式。
$value = 20151205;
$dto = new \DateTime($value);
$newValue = "[" . $dto->format('Y') . "," . $dto->format('m'). "," . $dto->format('d') . ']';
echo $newValue;
使用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'] . ']';
你可以试试字符串操作:-
<?php
$str1='20151205';
$str1=substr_replace($str1, '/', 4, 0);
$str1=substr_replace($str1, '/', 7, 0);
print_r (explode("/",$str1));
?>
只是想提供另一种可能性(此线程中的其他答案也有效);
$date = date("[Y,m,d]", strtotime('20151205'));
另请参阅:
http://php.net/manual/en/datetime.formats.date.php(适用于 strtotime() 的日期格式)
preg_replace(正则表达式)方法:
$value = 20151205;
$parsed = preg_replace('/^([\d]{4})([\d]{2})([\d]{2})$/', '[,,]', $value);
试试这个代码
$int="20151205";
$day = substr($int,-1,2);
$month = substr($int,-4,2);
$year = substr($int,0,4);
echo $date = $day.'/'.$month.'/'.$year;
我认为最好的解决方案是像这样将变量格式化为日期
try {
$value = (new DateTime($value))->format('\[Y\,m\,d\]');
}
catch (Exception $ex) {
echo '$Value is not a date value';
}
将代码包含在 Try/Catch 块中,以检测变量中的值是否与日期不对应。