输出日期与原始日期不同

时间:2017-10-03 04:40:50

标签: php mysql regex

这是我的问题。输出日期与我剪切的字符串不同。我已经尝试了下面的代码,这一天与原始日期不符。它应该是“26”但输出“02”,给我解决方案。

代码:

$line = 'File=D:\Shared\print\2017\september\26\printing\baryun - cetak transferpaper.tif';
     $r = "/^File=D:\\\\[a-zA-Z]+\\\\[a-z]+\\\\([0-9]{4})\\\\([a-z]+)\\\\([0-9]{1,2})/";

       if (preg_match($r, $line, $match)) {
            $date = $match[1]."-".$match[2]."-".$match[3];
            echo $date."<br>";
            $xtime = strtotime($date);
            $tes = date("Y-m-d",$xtime);

            echo $tes;
          }

输出:

2017-september-26
2017-09-02

当我尝试这段代码时

 if (preg_match($r, $line, $match)) {
            $date = $match[1]."-".$match[2]."-".$match[3];
            echo $date."<br>";
            $xtime = date_create($date);
            $tes = date_format($xtime,"Y-m-d");

            echo $tes;

输出,第01天。请帮助我

2017-september-26
2017-09-01

2 个答案:

答案 0 :(得分:2)

您可以使用date_create_from_format将日期换成适当的

echo $date."<br>";
$tes=date_create_from_format("Y-F-d",$date);
echo date_format($tes,"Y-m-d");

DEMO

答案 1 :(得分:1)

这是因为您尝试传递的日期字符串格式不正确。

如下所示: -

$r = "/([0-9]{4})\\\\([a-z]+)\\\\([0-9]{1,2})/"; // curtale your regex
if (preg_match($r, $line, $match)) {
    $date = $match[3]."-".$match[2]."-".$match[1]; //change the pattern
    echo $date."<br>";
    $xtime = strtotime($date);
    $tes = date("Y-m-d",$xtime);

    echo $tes;
}

https://eval.in/872478