在php中将德语日期字符串重新格式化为sql日期

时间:2015-04-17 19:46:49

标签: php parsing date format

我正在尝试将德语字符串解析为可以为sql数据库重新格式化的日期。

我看到的字符串如下:15. Mai 2015,基本上是这种格式:d. F Y
如何使用这种格式将其重新格式化为日期:Y-m-d使用PHP?我尝试使用正确的语言环境strtotime(),但没有成功。


编辑1:

我试过这个:

setlocale(LC_TIME, "de_DE");
date_format(
    date_create_from_format("d. F Y", $str),
    'Y-m-d'
);

和此:

setlocale(LC_TIME, "de_DE");
strftime("%Y-%m-%d", strtotime($str))


编辑2:

我已经像建议一样解决了这个问题:

function parseDate($str) {
    $months = array(
        "Januar"    => "January",
        "Februar"   => "February",
        "März"      => "March",
        "April"     => "April",
        "Mai"       => "May",
        "Juni"      => "June",
        "August"    => "August",
        "September" => "September",
        "Oktober"   => "October",
        "November"  => "November",
        "Dezember"  => "December"
    );

    return strtotime(strtr($str, $months));
}

但是不是有更优雅的方式吗?

1 个答案:

答案 0 :(得分:1)

参考 Converting a German date to Y-m-d does not work?

您需要使用英语月份名称替换月份字符串才能使用strtotime。