如何从字符串中获取日期并格式化?

时间:2015-07-23 09:24:44

标签: php string date datetime preg-match

我的服务器上的PDF文件保存如下:

945_20140610_Eve_Ikras.pdf

我想分别打破年,月,日。

$file = "945_20140610_Eve_Ikras.pdf";

if(preg_match("/\d{4}\-d{2}\-d{2}/", $file, $match))
    print_r($match);

输出:

Array (
  [0] => 20140610
)

但我想格式化这样的日期:

2014-06-10

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

最简单的方法就是创建一个DateTime对象(因为你有一个特殊格式,你必须使用DateTime::createFromFormat来创建你的对象),然后你可以根据需要设置日期格式与format(),例如

$file = "945_20140610_Eve_Ikras.pdf";

if(preg_match("/\d{4}\d{2}\d{2}/", $file, $match)) {
    $date = DateTime::createFromFormat("Ymd", $match[0]);
    echo $date->format("Y-m-d");
}

输出:

2014-06-10