将德国日期转换为Y-m-d不起作用?

时间:2012-02-28 11:48:21

标签: php date

我有这样的约会:2。2012年2月

我想将它转换为2012-02-02,所以我写了这段代码:

$date = '2. Februar 2012';
$date = date('Y-m-d', $date);

$ date var为空或1970-01-01之后,是错误还是丢失?

注意:日期采用德语格式,因此不是2月份,而是Februar。我从那个日期选择器那里得到了日期。

谢谢!

5 个答案:

答案 0 :(得分:3)

您可以使用*strtotime并且还需要在strtotime函数中传递有效日期格式,因为$date变量的格式不正确。

您有.和拼写错误的月份名称。在传递strtotime之前,你必须清除它们。我已经使用了str_replace

$date = '2. Februar 2012';
$date = date('Y-m-d', strtotime(str_replace('Februar','february',str_replace('.','', $date))));

答案 1 :(得分:2)

像这样使用:

$date = '2. February 2012';
$date = strtotime($date);
$date = date('Y-m-d', $date);

echo $date;

答案 2 :(得分:0)

使用strtotime

putenv('LC_ALL=de_DE');
putenv('LANG=de'); 
setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');

$date = '2. Februar 2012';
$date = date('Y-m-d', strtotime($date));

答案 3 :(得分:0)

使用strtotime()

strtotime("2 February 2012") will return the unix timestamps.

mktime(0, 0, 0, 2, 2, 2012) will return the same unix timestamps.

如果可以运行

$ts = mktime(0, 0, 0, 2, 2, 2012);
echo date("Y-m-d H:i:s", $ts); // output 2012-02-02 00:00:00  

You can run the following too

$ts = strtotime("2 February 2012");
echo date("Y-m-d H:i:s", $ts); // output 2012-02-02 00:00:00 

答案 4 :(得分:0)

php中的

date()函数需要将第一个参数作为字符串。在你的例子中没问题。 Seconds参数是可选的,它应该是整数,并且您要转换时间戳。

参考:http://php.net/manual/en/function.date.php