Существует ли функция, использующая формат date()
для интерпретации строки?
echo date('siH d:m:Y', 1304591364); // 34-29-17 05:05:2011 // Does this function exist? echo inverse_date('siH d:m:Y', '34-29-17 05:05:2011'); // 1304591364
Я знаю strtotime()
, но в большинстве случаев меня не strtotime()
, так как я не разбираюсь в форматах даты на английском языке.
Я ищу функцию, которая может диктовать формат.
Настоящий ответ на этот вопрос, я имею в виду: http://www.php.net/manual/en/datetime.createfromformat.php
<?php $date = date_create_from_format('jM-Y', '15-Feb-2009'); echo date_format($date, 'Ym-d'); // 2009-02-15 ?>
Для этого вы обычно используете strtotime
:
echo strtotime('2011-05-05 17:29:34');
Из руководства:
strtotime – проанализировать любое текстовое описание даты и времени на английском языке в метке времени Unix
Смотрите правильные форматы даты и времени, чтобы убедиться, что строка, которую вы передаете, будет правильно проанализирована.
PHP 5.4+ напечатает 1359674625
echo date_create_from_format('j/n/YG:i:s','1/2/2013 1:23:45')->getTimestamp();
Функция mktime
похоже, делает то, что вы хотите.
Проверьте справку на php.net:
http://php.net/manual/en/function.mktime.php
EDIT: действительно strtotime
может быть более удобным для вас, я не знал этой функции, рад узнать.
Принятый ответ правильный 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 для получения информации о методе, описанном выше.
Да, вы можете использовать:
echo strtotime("2011-05-05 17:29:34");
Попробуйте это сделать наоборот:
$ x = '2013-09-15';
$ x = implode ('-', array_reverse (explode ('-', $ x)));
// теперь $ x = '15 -09-2013 '