如何从长串数字格式化一系列日期?

时间:2014-11-24 01:16:18

标签: php date format word-wrap

我有一串代表多个日期的数字。我们这样说: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]

我还能用什么来获得我想要的格式?

2 个答案:

答案 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))
);

demo