我有一串代表多个日期的数字。我们这样说:112620141129201412252014。这个数字代表2014年11月26日 - 2014年11月29日 - 2014年12月25日。
我想格式化它,使其看起来像[11,26,2014],[11,29,2014],[12,25,2014]。
我几乎能用wordwrap的方式得到它:
$date = wordwrap( $date , 8, '], [' , true );
$date = "[" . $date . "]";
echo $date;
返回:[11262014],[11292014],[12252014]
我还能用什么来获得我想要的格式?
答案 0 :(得分:0)
这是一个解决方案,考虑到你的日期和月份总是用两位数表示。例如,2014年11月3日应该是11032014
而不是1132014
。
<?php
$list = "112620141129201412252014";
$newlist = "";
while (!empty($list))
{
$newlist = $newlist . "[" . substr($list, 0, 2) . "," . substr($list, 2, 2) . "," . substr($list, 4, 4) . "]";
$list = substr($list, 8); // remove from $list the date we just added to $newlist
if (!empty($list))
{
$newlist = $newlist . ",";
}
}
echo $newlist;
?>
希望帮助:-)
答案 1 :(得分:0)
查看str_split()
和substr_replace()
函数:
echo implode(', ', array_map(function($val) {
$val = substr_replace($val, ',', 4, 0);
$val = substr_replace($val, ',', 2, 0);
return '[' . $val . ']';
}, str_split($input_string, 8))
);