2015-05-13 4 views
0

Я сделал много поисков для простой функции для преобразования пользовательских DateTime в Timestamp, но я не получил точное решение:Пользовательский формат DateTime в TIMESTAMP

ул DateTime является:

$dt = "14-05-2015 18:21";

(Day-Month-Year Hour: Minute) (не стандартный формат DateTime)

Есть ли простая функция для преобразования этой строки в метку времени?

Спасибо.

ответ

2

не может быть проще, чем:

$dt = "14-05-2015 18:21"; 
echo strtotime ($dt); //1431627660 
+0

Но как PHP скажет, что первый и второй элементы - это День, а месяц - не наоборот? Как в «06-05-2015 18:21» – medk

+1

из руководства: «Даты в форматах m/d/y или dmy устраняются неоднозначно, глядя на разделитель между различными компонентами: если разделитель является косой чертой (/), , тогда предполагается американский m/d/y, тогда как если разделитель является тире (-) или точкой (.), тогда предполагается формат европейского dmy. "--please read: http://php.net /manual/en/function.strtotime.php –

2

Если формат всегда будет то же самое, вы можете сделать это следующим образом.

$date = DateTime::createFromFormat('d-m-Y H:i', $dt); 
$timestamp = $date->format('U'); 
+0

OP уже сказал, что ему нужна временная метка unix, использование класса DateTime классно, но это не требуется OP, просто используйте 'U' или' -> getTimestamp() ', и почему бы не использовать' createFromFormat', чтобы избежать двусмысленности в вопросе об обмене 'dm' /' md' – Ghost

+0

Вы правильно @Ghost, я изменил ответ. – EternalHour

+0

@Ghost - Спасибо, тоже вот-вот изменил это :) – EternalHour

Смежные вопросы