Преобразование немецкой даты в Y-m-d не работает? - PullRequest
2 голосов
/ 28 февраля 2012

У меня есть такая дата: 2 февраля 2012

Я хочу преобразовать его в 2012-02-02, поэтому я написал этот код:

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

$ date var либо пуста, либо 1970-01-01 впоследствии, что не так или отсутствует?

Примечание: Дата в немецком формате, поэтому не февраль, а февраль. Таким образом я получаю дату от сборщика дат.

Спасибо!

Ответы [ 5 ]

2 голосов
/ 28 февраля 2012

используйте так:

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

echo $date;
2 голосов
/ 28 февраля 2012

Вы можете использовать * strtotime , а также необходимо передать действительный формат даты в функцию strtotime, поскольку переменная $date не имеет допустимого формата.

У вас есть . и название месяца с ошибкой. Вы должны очистить их, прежде чем вводить strtotime. Я использовал str_replace для этого.

$date = '2. Februar 2012';
$date = date('Y-m-d', strtotime(str_replace('Februar','february',str_replace('.','', $date))));
0 голосов
/ 28 февраля 2012

date() функция в php ожидает первый параметр в виде строки. Это нормально в вашем примере. Параметр Seconds является необязательным, и ожидается, что он будет integer с отметкой времени, которую вы хотите преобразовать.

Ссылка: http://php.net/manual/en/function.date.php

0 голосов
/ 28 февраля 2012

Используйте 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 
0 голосов
/ 28 февраля 2012

использование 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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...