分割日期行并以所需格式展示

时间:2017-10-19 23:05:21

标签: php date

我正在尝试读取包含日期的1000行的文件:2017-09-04 yyyy-mm-dd mm yyyy dd。首先是日期然后是当前格式,然后是将日期转换为所需格式。我试图将所有数据从文件读入数组并在空间的基础上进行爆炸。然后我采取前三个阵列位置转换所需格式的日期。但它通过说出意想不到的异常而给出错误。

这是我的代码:

<?php
$homepage = file_get_contents("file.txt");

$keywords = preg_split("/[\s,]+/", $homepage);

print_r($keywords);
$len = count($keywords);
for ($i = 0; $i <= $len; $i = $i + 2) {

  $a = $keywords[$i];
  $b = $keywords[$i + 1];
  $c = $keywords[$i + 2];

  $date = new DateTime($a);
  echo $date - > format($c);
}
?>

1 个答案:

答案 0 :(得分:0)

尝试这样的事情。问题是PHP没有查看像yyyy-mm-dd这样的格式,而是像Y-m-d'. Which is what the preg_replace`函数那样。

<?php
$homepage = "2017-09-04, yyyy-mm-dd, mmyyyydd";

$homepage = preg_replace('/yyyy/', 'Y', $homepage, -1);
$homepage = preg_replace('/mm/', 'm', $homepage, -1);
$homepage = preg_replace('/dd/', 'd', $homepage, -1);

$keywords = preg_split("/[\s,]+/", $homepage);

print_r($keywords);
$len = count($keywords);
for ($i = 0; $i < $len; $i += 3) {

  $a = $keywords[$i];
  $b = $keywords[$i + 1];
  $c = $keywords[$i + 2];

  $date = date_create_from_format($b, $a);
  echo $date->format($c);
}
?>

Works here