gpt4 book ai didi

带有 AM/PM 的 PHP 字符串到日期时间

转载 作者:可可西里 更新时间:2023-10-31 22:51:21 26 4
gpt4 key购买 nike

是否可以在 php 中将格式为“A H:i m/d/y”的字符串转换为 DateTime?

示例字符串:AM 05:28 07/08/13

这行不通

$date = DateTime::createFromFormat('A H:i m/d/y', 'AM 05:28 07/08/13');

这个有效:

$date = DateTime::createFromFormat('H:i m/d/y', '05:28 07/08/13');

$date = DateTime::createFromFormat('H:i m/d/y A', '05:28 07/08/13 AM');

丑陋的解决方法:

$myDate = 'AM 05:28 07/08/13';
$myDate = substr($myDate, 3, strlen($myDate)-3)." ".substr($myDate, 0, 2);

$date = DateTime::createFromFormat('H:i m/d/y A', $myDate);

最佳答案

这是一个 php bug .尝试使用下一个功能:

function createFromFormat($format, $time)
{
$is_pm = (stripos($time, 'PM') !== false);
$time = str_replace(array('AM', 'PM'), '', $time);
$format = str_replace('A', '', $format);

$date = DateTime::createFromFormat(trim($format), trim($time));

if ($is_pm)
{
$date->modify('+12 hours');
}

return $date;
}


$date = createFromFormat('H:i m/d/y A', '05:28 07/08/13 AM');
var_dump($date->format('d.m.Y H:i')); // string(16) "08.07.2013 05:28"

$date = createFromFormat('H:i m/d/y A', '05:28 07/08/13 PM');
var_dump($date->format('d.m.Y H:i')); // string(16) "08.07.2013 17:28"

关于带有 AM/PM 的 PHP 字符串到日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23552923/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com