我正在尝试将德语字符串解析为可以为sql数据库重新格式化的日期。
我看到的字符串如下:15. Mai 2015
,基本上是这种格式:d. F Y
。
如何使用这种格式将其重新格式化为日期:Y-m-d
使用PHP?我尝试使用正确的语言环境strtotime()
,但没有成功。
我试过这个:
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))
我已经像建议一样解决了这个问题:
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));
}
但是不是有更优雅的方式吗?
答案 0 :(得分:1)
参考 Converting a German date to Y-m-d does not work?
您需要使用英语月份名称替换月份字符串才能使用strtotime。