Php 如何将12小时格式的日期/时间字符串转换为24小时格式?

Php 如何将12小时格式的日期/时间字符串转换为24小时格式?,php,date,datetime,Php,Date,Datetime,我试着到处寻找解决方案,但我所尝试的一切都不起作用 我有一个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') ;

我试着到处寻找解决方案,但我所尝试的一切都不起作用

我有一个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') ;

我是不是误用了这个?我应该采取完全不同的方法吗?

尝试在DateTime对象上使用createFromFormat方法:

例如:

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

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

不要害怕使用有效或无效的代码。这是怎么不起作用的?试着使用
date\u parse\u from\u format
这样你就可以指定输入日期的格式。谢谢大家,@NaN让它起作用了。“d-m-Y H:i A”是正确的格式,不知道你为什么要更改它。是的@NaN就是这样!那就是我错过的那个。我从未听说过,但我有一种感觉,我需要告诉它原始日期/时间的格式,否则它怎么知道哪个是月份,哪个是日期。太好了,谢谢我正要说你需要添加“A”,但你先到了:)@JungleZombie啊,我无法测试,也不太确定AM/PM是否能正常工作,正如你所说的那样,我现在已经把它改回来了@我很高兴它被分类了