php字符串从多日期格式转换为日期

时间:2017-03-31 09:48:21

标签: php date datetime date-formatting string-to-datetime

我想将字符串日期转换为以下格式' Y-m-d'来自多个日期格式,例如

17年12月3日, 2017年12月3日, 17年3月12日, 2017年3月12日, 17年3月12日, 17年12月3日

$ymd = DateTime::createFromFormat('m-d-Y', '10-16-2003')->format('Y-m-d');

我到目前为止最接近的解决方案来自以下文章read the article here

是否有更好的解决方案,考虑到输入日期字符串可能是未知格式?

1 个答案:

答案 0 :(得分:1)

我希望这对你有所帮助。在dateFormat()函数中,您可以指定不同类型的有效格式。

function dateFormat() {
    $date_format['d.m.Y'] = 'd.m.Y';
    $date_format['d.m.y'] = 'd.m.y';
    $date_format['d-m-Y'] = 'd-m-Y';
    $date_format['d-m-y'] = 'd-m-y';
    $date_format['d/m/Y'] = 'd/m/Y';
    $date_format['d/m/y'] = 'd/m/y';

    return $date_format;
}

之后,您可以使用此功能,如下面的代码

$source = '2017-03-31';
$date = new DateTime($source);
$date_format = dateFormat();
foreach($date_format as $k => $v) {
    $date_list[] = $date->format($k); 
}
print_r($date_list);
exit;

输出: -

Array
(
    [0] => 31.03.2017
    [1] => 31.03.17
    [2] => 31-03-2017
    [3] => 31-03-17
    [4] => 31/03/2017
    [5] => 31/03/17
)

Live Demo