我有一串代表多个日期的数字。假设它是:112620141129201412252014。该数字代表 2014 年 11 月 26 日至 2014 年 11 月 29 日至 2014 年 12 月 25 日。
我想格式化它,使其看起来像 [11, 26, 2014], [11, 29, 2014], [12, 25, 2014]。
我几乎可以用自动换行的方式获得它:
$date = wordwrap( $date , 8, '], [' , true );
$date = "[" . $date . "]";
echo $date;
返回: [11262014], [11292014], [12252014]
我还可以使用什么来获得我想要的格式?
这是一个解决方案,考虑到您的日和月总是用两位数表示。例如,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;
?>
希望对:-)
有所帮助
看看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))
);
演示