Подтвердить что ты не робот

Имеет ли PHP обратную функцию date() (кроме strtotime())?

Есть ли функция, использующая формат date() для интерпретации строки?

echo date('s-i-H d:m:Y', 1304591364); // 34-29-17 05:05:2011

// Does this function exist?
echo inverse_date('s-i-H d:m:Y', '34-29-17 05:05:2011'); // 1304591364

Я знаю strtotime(), но его в большинстве случаев не удается, так как я не разбираю английские форматы даты.

Я ищу функцию, которая может диктовать формат.

4b9b3361

Ответ 2

Обычно вы использовали strtotime:

echo strtotime('2011-05-05 17:29:34');

Из руководства:

strtotime - Разбор любого английского текстовое описание даты и времени в Временная метка Unix

См. допустимые форматы даты и времени, чтобы убедиться, что строка, которую вы передаете, будет правильно проанализирована.

Ответ 3

PHP 5.4+ напечатает 1359674625

echo date_create_from_format('j/n/Y G:i:s','1/2/2013 1:23:45')->getTimestamp();

Ответ 4

Функция mktime, кажется, делает то, что вы хотите.

Проверьте справку на php.net:

http://php.net/manual/en/function.mktime.php

EDIT: действительно, strtotime может быть более удобным для вас, я не знал этой функции, рад узнать.

Ответ 5

Принятый ответ правильный IMO, но вы также можете использовать синтаксис OO: DateTime::createFromFormat например:

$dateTimeObject = \DateTime::createFromFormat('G:i', '9:30');
$dateTimeObject->format('H:i');

См. http://php.net/manual/en/function.date.php для руководств по форматированию и http://php.net/manual/en/datetime.createfromformat.php для информации о методе, описанном выше.

Ответ 6

Да вы можете использовать:

echo strtotime("2011-05-05 17:29:34");

Ответ 7

Попробуйте сделать это:

$x = '2013-09-15';

$x = implode ('-', array_reverse (explode ('-', $x)));

//теперь $x = '15 -09-2013 '