将德语日期字符串格式化为 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。
我正在尝试将德语字符串解析为我可以为 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。