gpt4 book ai didi

php - 当秒数不为零时,Date_format 返回 false

转载 作者:行者123 更新时间:2023-12-03 22:54:38 25 4
gpt4 key购买 nike

我有一个像这样的 json 消息中的字符串:“2016-2-16 13:48:3

请注意,秒数不以零开头,我需要在将日期插入数据库之前验证其格式是否正确,

所以我创建了一个函数来使用 date_format 函数验证日期,如下所示:

function validateDate($date, $format = 'Y-m-d H:i:s')
{
$d = DateTime::createFromFormat($format, $date);
if ($d) {
return $date;
} else {
return null;
}
}

我的问题是当秒数不以 0 开头时它返回 null,因为格式没有不以 0 开头的秒数,所以秒数应该像“03”而不是“3”,

有什么想法吗?

最佳答案

如果您无法修复 JSON,我会使用 preg_replace 手动替换个位数秒和分钟——应该很容易,因为您只需在前面填充一个 0每一个。

以下是替换秒数的方法:

 $pattern = '/:(.)$/';
$fixed_seconds = preg_replace($pattern, ':0${1}', "2016-2-16 13:48:3");
echo $fixed_seconds;

您可以使用这种模式几分钟:

 $pattern = '/:(.):/';
$fixed_minutes = preg_replace($pattern, ':0${1}:', "2016-2-16 13:4:03");

然后,如果这两个得到 Change your format string to this:

$format = 'Y-n-j G:i:s'

关于php - 当秒数不为零时,Date_format 返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35443677/

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