Преобразуйте эту строку в метку времени PHP

У меня есть такая строка: «13/10 15:00», и я хотел бы преобразовать ее в метку времени, но когда я это сделаю:

      $timestamp = strtotime("13/10 15:00");

Возвращает пустое значение.


person user2876368    schedule 13.10.2013    source источник
comment
strtotime не является непогрешимым - если вы знаете формат, вы должны использовать DateTime :: createFromFormat (доступно с PHP 5.3.x и выше) или аналогичный. (Вам также необходимо указать недостающий год.)   -  person John Parker    schedule 13.10.2013
comment
ваша строка не является четко определенной датой или временем   -  person Jonas Stein    schedule 13.10.2013


Ответы (2)


В вашем коде strtotime() пытается преобразовать 13/10 как десятый день 13-го месяца, что возвращает ошибку.

Если вы хотите проанализировать строку даты в настраиваемом формате, лучше вместо этого использовать DateTime :: createFromFormat ():

$dtime = DateTime::createFromFormat("d/m G:i", "13/10 15:00");
$timestamp = $dtime->getTimestamp();
person Community    schedule 13.10.2013
comment
$timestamp переменная содержит объект DateTime, а не метку времени. Чтобы получить отметку времени, используйте $timestamp->getTimestamp(); или $timestamp->format('U'); - person Glavić; 14.10.2013
comment
@ Glavić Достаточно верно - все же надежнее, чем strtotime(). Спасибо. - person ; 14.10.2013
comment
Ссылка на документацию: php.net/manual/en/datetime.createfromformat.php - person Doug; 18.04.2015

  $timestamp = strtotime("13-10-2013 15:00");

Это может быть важно:

Даты в форматах m / d / y или d-m-y устраняются путем рассмотрения разделителя между различными компонентами: если разделителем является косая черта (/), то предполагается американский m / d / y; тогда как если разделителем является тире (-) или точка (.), то предполагается европейский формат d-m-y.

Чтобы избежать потенциальной двусмысленности, лучше использовать даты ISO 8601 (ГГГГ-ММ-ДД) или DateTime :: createFromFormat (), когда это возможно.

http://uk3.php.net/strtotime

person Lajos Veres    schedule 13.10.2013