2015-07-15 1 views
0

Я пробовал искать везде, чтобы найти решение для этого, но ничего не пытаюсь работать.Как конвертировать 12-часовой формат даты/времени в 24 часа?

У меня есть строка даты/времени в 12-часовом формате Великобритании:

20-07-2017 04:45 PM 

Я пытаюсь преобразовать его в следующем 24-часовом:

Y-m-d H:i:00 

А вот PHP Я пытался добраться до работы ...

$start_date = $_POST['startdate']; 
$newstartdate = new DateTime($start_date); 
$start_date = $newstartdate->format('Y-m-d H:i:00') ; 

Я злоупотребляю этим? Должен ли я придерживаться совершенно другого подхода?

+0

Не бойтесь использовать код, который работает - или не так ли? – Sven

+0

Как это не работает? –

+0

Попробуйте использовать 'date_parse_from_format', чтобы вы могли указать формат даты ввода. – Barmar

ответ

2

Попробуйте использовать метод createFromFormat на DateTime объекта: php DateTime::createFromFormat

Например:

$newstartdate = DateTime::createFromFormat('d-m-Y H:i A' ,$start_date); 

$start_date = $newstartdate->format('Y-m-d H:i:s') ; 
+0

«d-m-Y H: i A» был правильным форматом, не знаю, почему вы его изменили. – JungleZombie

+0

Да @NaN вот и все! Это тот, который мне не хватало. Я никогда не слышал об этом, но у меня было ощущение, что мне нужно сказать, в каком формате была исходная дата/время, иначе как он узнает, какой из них - месяц, а какой день. Большое спасибо! - Я собирался сказать, что вам нужно добавить «A», но вы получили его первым :) – Metzed

+0

@JungleZombie ah Я не смог проверить и не был уверен, что AM/PM будет работать, как вы сказали, что я теперь изменил его обратно! – NaN