У меня такая дата: 2. Februar 2012
Я хочу, чтобы он был преобразован в 2012-02-02, поэтому я написал этот код:
$date = '2. Februar 2012'; $date = date('Ym-d', $date);
Параметр $ date var либо пуст, либо 1970-01-01 впоследствии, что не так или нет?
Примечание . Дата находится в немецком формате, поэтому ее не февраль, а февраль. Я получаю дату от выбора даты таким образом.
Благодаря!
Вы можете использовать * strtotime, а также должны передавать действительный формат даты в функции strtotime, поскольку ваша переменная $date
не имеет допустимого формата.
У вас есть .
и имя месяца с ошибкой. Вы должны очистить их, прежде чем перейти в strtotime
. Для этого я использовал str_replace
.
$date = '2. Februar 2012'; $date = date('Ym-d', strtotime(str_replace('Februar','february',str_replace('.','', $date))));
используйте следующее:
$date = '2. February 2012'; $date = strtotime($date); $date = date('Ym-d', $date); echo $date;
Функция date()
в php ожидает первого параметра как строки. Это нормально в вашем примере. Параметр Seconds необязателен, и ожидается, что он будет целочисленным с отметкой времени, которую вы хотите преобразовать.
использовать 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('Ym-d', strtotime($date));
Используйте 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("Ymd H:i:s", $ts); // output 2012-02-02 00:00:00 You can run the following too $ts = strtotime("2 February 2012"); echo date("Ymd H:i:s", $ts); // output 2012-02-02 00:00:00