PHP:将字符串转换为 DATETIME,同时考虑 am/pm


PHP: Convert String to DATETIME with Consideration of am/pm

我想在考虑am/pm的情况下将字符串转换为php数据时间。

我想将'03/06/2015 12:17 am'转换为php datatime

我试过了

$myDateTime = DateTime::createFromFormat('m/d/Y H:i', '03/27/2015 01:17 pm');
$newDateString = $myDateTime->format('Y-m-d H:i');

我的目标输出是2015-03-27 13:17:00

请帮我解决这个问题。

根据您播种的输出,一行代码就足够了:-

<?php
echo $newDateString = date('Y-m-d H:i:s',strtotime('03/27/2015 01:17 pm'));
?>

输出:- 2015-03-27 13:17:00

https://eval.in/514315

这不是一个答案,只是注意更易读的代码格式:

我建议仔细检查 strtotime() 的预期结果,有时它无法使用。

例如:

<?php
date_default_timezone_set("Europe/Moscow");
$today = date("d-m-Y",mktime(0,0,0,4,28,2013)); // 28-04-2013, sunday
$lastWeek = strtotime("last week $today");
$thisWeek = strtotime("this week $today");
$nextWeek = strtotime("next week $today");
echo "last week - ".$lastWeek." / ".date("d-m-Y H:i'n",$lastWeek);
echo "this week - ".$thisWeek." / ".date("d-m-Y H:i'n",$thisWeek);
echo "next week - ".$nextWeek." / ".date("d-m-Y H:i'n",$nextWeek);

结果:

last week - 1366574400 / 22-04-2013 00:00; expected 15-04-2013
this week - 1367179200 / 29-04-2013 00:00; expected 22-04-2013
next week - 1367784000 / 06-05-2013 00:00; expected 29-04-2013

这么晚更新: 此错误在 2016 年 3 月左右得到修复,版本>5.6.20 和>7.0.4 不再有此问题