我正在尝试读取包含日期的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);
}
?>
答案 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);
}
?>