PHP: конвертировать дату в секунды? - PullRequest
3 голосов
/ 20 декабря 2009

У меня свидание вроде вт 15 дек. 2009 . Как я могу преобразовать это в секунды?

Обновление: Как я могу преобразовать дату в формате, указанном выше, в метку времени Unix?

Ответы [ 3 ]

25 голосов
/ 20 декабря 2009

Полагаю, в секундах вы имеете в виду UNIX timestamp .

strtotime () должно помочь.

15 голосов
/ 20 декабря 2009

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

$str = 'Tue Dec 15 2009';
$timestamp = strtotime($str);

И, чтобы быть уверенным, давайте преобразовать его обратно в дату в виде строки:

var_dump(date('Y-m-d', $timestamp));

Что дает нам:

string '2009-12-15' (length=10)

(что доказывает strtotime понял нашу дату ^^)



[править 2012-05-19], так как некоторые другие вопросы могут указать здесь некоторых читателей: Обратите внимание, что strtotime() - не единственное решение, и вы должны быть в состоянии работать с классом DateTime, который предоставляет некоторые интересные функции - особенно если вы используете PHP> = 5.3


В этом случае вы можете использовать что-то вроде следующей части кода:

$str = 'Tue Dec 15 2009';
$format = 'D F d Y';
$dt = DateTime::createFromFormat($format, $str);
$timestamp = $dt->format('U');


DateTime::createFromFormat() позволяет создавать объект DateTime практически из любой даты, независимо от того, как она отформатирована, так как вы можете указать формат, в котором она датируется (этот метод доступен с PHP> = 5.3) .

И DateTime::format() позволит вам отформатировать этот объект практически в любой формат даты - включая UNIX Timestamp , как здесь требуется.

6 голосов
/ 20 декабря 2009

Ты имеешь в виду UNIX-отметку времени? Попробуйте:

echo strtotime('Tue Dec 15 2009');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...