PHP 解析德语日期

Lov*_*ngh 1 php date

我对下面的代码有疑问。如何格式化德语日期,例如“Di, 02.Okt 2012”到“2012-10-02”?

\n\n

我已经检查了许多网站以寻求解决方案,但没有找到可以帮助我的东西。

\n\n
    $value =\'Di, 02.Okt 2012\';\n    $tempdate = $value;\n    $tempdate = substr($tempdate,-11);\n    $tempdate = date(\'Y-m-d\',$tempdate);\n
Run Code Online (Sandbox Code Playgroud)\n\n

输出:1970-01-01

\n\n

解决了:

\n\n
$value = \'comes from a foreach loop\'; \n\n$tempdate = $value;\n    $tempdate = substr($tempdate,-11);\n    $tempdate = str_replace(\'.Jan \', \'-01-\', $tempdate);\n    $tempdate = str_replace(\'.Feb \', \'-02-\', $tempdate);\n    $tempdate = str_replace(\'.M\xc3\xa4r \', \'-03-\', $tempdate);\n    $tempdate = str_replace(\'.Apr \', \'-04-\', $tempdate);\n    $tempdate = str_replace(\'.Mai \', \'-05-\', $tempdate);\n    $tempdate = str_replace(\'.Jun \', \'-06-\', $tempdate);\n    $tempdate = str_replace(\'.Jul \', \'-07-\', $tempdate);\n    $tempdate = str_replace(\'.Aug \', \'-08-\', $tempdate);\n    $tempdate = str_replace(\'.Sep \', \'-09-\', $tempdate);\n    $tempdate = str_replace(\'.Okt \', \'-10-\', $tempdate);\n    $tempdate = str_replace(\'.Nov \', \'-11-\', $tempdate);\n    $tempdate = str_replace(\'.Dez \', \'-12-\', $tempdate);\n    $tempdate = date(\'Y-m-d\',strtotime($tempdate));\n\n    echo $tempdate.\'<br/>\';\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是许多日期的解决方案。^^我希望我能帮忙

\n

WEB*_*uju 5

将包含德国日期和月份$date_string的变量传递给使用strtr (字符串翻译)以及德国日期(和月份)数组的函数将允许strtotime(字符串到 unix 时间戳)正确解析:

\n\n
\n

任何英文文本日期时间描述

\n
\n\n

由于strtotime (字符串到 unix 时间戳)仅解析英语,因此在没有国际化的情况下需要手动干预来翻译这些字符串。

\n\n
function germanStrtotime($date_string) {\n  $germanDays = array(\'montag\'=>\'monday\', \'mo\'=>\'monday\', \'dienstag\'=>\'tuesday\', \'di\'=>\'tuesday\', \'mittwoch\'=>\'wednesday\', \'mi\'=>\'wednesday\', \'donnerstag\'=>\'thursday\', \'do\'=>\'thursday\', \'freitag\'=>\'friday\', \'fr\'=>\'friday\', \'samstag\'=>\'saturday\', \'sa\'=>\'saturday\', \'sonntag\'=>\'sunday\', \'so\'=>\'sunday\');\n  $germanMonths = array(\'jnuar\'=>\'january\', \'jan\'=>\'january\', \'j\xc3\xa4n\'=>\'january\', \'februar\'=>\'february\', \'feb\'=>\'february\', \'marz\'=>\'march\', \'m\xc3\xa4rz\'=>\'march\', \'mai\'=>\'may\', \'juni\'=>\'june\', \'oktober\'=>\'october\', \'okt\'=>\'october\', \'sept\'=>\'september\', \'dezember\'=>\'december\', \'dez\'=>\'december\');\n  $str = strtr(strtolower($date_string), $germanMonths);\n  $str = strtr(strtolower($str), $germanDays);\n  return strtotime($str);\n}\n\n$value =\'Di, 02.Okt 2012\';\n$tempdate = $value;\n$tempdate = germanStrtotime($tempdate);\n$tempdate = date(\'Y-m-d\', $tempdate);\n\ndie(\'Output: \'.$tempdate); // 2012-10-02\n
Run Code Online (Sandbox Code Playgroud)\n