У меня есть дата в таком формате: 20101101120000
Мне нужно преобразовать его в метку времени с PHP.
Я искал документы в формате PHP в Интернете, но не могу найти ничего, что может напрямую конвертироваться. Есть ли один? Если нет, то какой самый эффективный способ сделать преобразование? Спасибо за помощь.
Вы можете сделать это с помощью функции DateTime::createFromFormat
:
$d = DateTime::createFromFormat('YmdGis', '20101101120000');
$d
теперь является экземпляром DateTime
. Вы можете либо преобразовать его в метку времени с помощью $d->getTimestamp()
либо использовать методы DateTime
.
Обратите внимание, что для этого требуется PHP 5.3.
strtotime('20101101120000')
….
Вам нужна функция strptime
.
Форматы описаны в strftime
.
Я только добавляю к этому разрешенному вопросу, потому что это может быть полезно для пользователей, которые спотыкаются здесь (как и я), и ищут фактическую метку времени datetime.
Мое предположение для большинства людей, когда они упоминают временную метку, заключается в том, что они ищут getTimestamp()
метку « YYYY-MM-DD HH: MM: SS » не временную метку unix, которую вы получаете, когда используете метод getTimestamp()
(см. Принятый ответ если вы действительно ищете временную метку UNIX).
Поэтому я подробно рассмотрю ответ lonesomeday (который полностью верен) для тех, кто хочет получить действительную форматированную дату, которую они могут отображать пользователям или вставлять в свою базу данных:
$d = DateTime::createFromFormat('YmdGis', '20101101120000'); $formatedDate = $d->format('Ymd H:i:s'); // will return 2010-11-01 12:00:00 $formatedDate = $d->format('mdY h:i A'); // will return 11-01-2010 12:00 PM