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


How can I format a series of dates from long string of numbers?

我有一串代表多个日期的数字。假设它是: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))
);

演示