将德语日期字符串格式化为 php 中的 sql 日期

Reformat german datestring to sql date in php

我正在尝试将德语字符串解析为我可以为 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));
}

但是有没有更优雅的方式呢?

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

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