我已经在我的网站页面上设置了时区:
date_default_timezone_set("America/Los Angeles");
我已经宣布了一个时间变量:
$time = date("h:i:sa");
然后将其添加到数据库中。然后我从数据库中检索时间,试图重新格式化它:
$time2 = date("h:i A", strtotime($row['Time']));
然后打印出时间:
echo $time2;
然而,这种方法会混淆AM和PM。例如,如果在晚上11:59:00将$ time添加到数据库,它将在上午11:59而不是晚上11:59打印出来。我认为问题在于,当时间添加到数据库时,AM和PM之间没有明显的区别。但是,我仍然不确定如何解决这个问题。我已经尝试在AM PM中添加时间,例如:
$time = date("h:i:sa A");
然后像这样访问它:
$time2 = $row['Time'];
但这仍然无法修复错误。在保持我的12小时格式的同时还有办法解决这个问题吗?或者我是否必须更改为24小时格式才能使其生效?
答案 0 :(得分:0)
请开始在Y-m-d
,H:i:s
或DATETIME
字段中以DATE
/ TIME
格式存储日期/时间。你的生活和我们的生活会容易得多。
在此之前,请使用此PHP解决方案:
$dt = DateTime::createFromFormat('!h:i:sa', $row['Time']);
echo $dt->format('H:i:s');
或mysql解决方案:
SELECT STR_TO_DATE('08:46:07am','%h:%i:%s%p')