【问题标题】:php string to date conversion from multiple date format [duplicate]php字符串从多种日期格式转换为日期[重复]
【发布时间】:2017-03-31 09:48:21
【问题描述】:

我想将字符串日期从多种日期格式转换为以下格式“Y-m-d”,例如

12-3-17, 2017 年 12 月 3 日, 12.3.17, 12.3.2017, 12.03.17, 2017 年 12 月 3 日

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

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

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

【问题讨论】:

  • 使用 DateTime、DateInterval 和 DateTimeZone 类是 imo 的最佳解决方案。如果你经常处理日期,你可以考虑这个组件:github.com/briannesbitt/Carbon(它有有用的方法)

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


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多