我把MySQL的当前日期和时间使用PHP时间不是现在显示PM,只有AM
$datecreated = date("Y-m-d, g:i:s A");
然后显示给用户与
$datecreated = date('n-j-Y, g:i:s A', strtotime($row['datecreated']));
一切都很正常,除了时间总是AM。我已经在早上和下午测试过了,现在仍然是AM。
我把MySQL的当前日期和时间使用PHP时间不是现在显示PM,只有AM
$datecreated = date("Y-m-d, g:i:s A");
然后显示给用户与
$datecreated = date('n-j-Y, g:i:s A', strtotime($row['datecreated']));
一切都很正常,除了时间总是AM。我已经在早上和下午测试过了,现在仍然是AM。
写入数据库时使用date("Y-m-d H:i:s")
(24小时制表示法)。
否则,“PM”(或“AM”)部分会被截断,让您始终处于“AM”状态。
我相信这个问题是由于您的日期格式选择12小时的时间。因为它们都是24小时格式(0-23),所以将小写字母g更改为“G”(无前导零)或“H”(带前导零),而“g”是12小时格式(0-12 )。
您应该使用一个DATETIME
字段,它以24小时格式存储日期和时间。
您可以使用MySQL NOW功能来存储当前时间:
INSERT INTO mytable
(mydatefield)
VALUES
(NOW())
如果您需要做的是在PHP中,你可以这样做:
$datecreated = date('Y-m-d H:i:s');
这将其存储在24-小时时间格式。然后,您可以在选择函数后使用PHP date函数或使用MySQL DATE_FORMAT函数将其格式化为12小时。
你能解释一下这个具体情况吗? – 2011-05-23 20:45:38
谢谢。 24小时格式工作。 – DanielOlivasJr 2011-05-23 21:08:16
为什么不使用date(“Y-m-d,G:i:s”)?
你也可以改变你的服务器的时钟,而不是等到下午来测试它。
应该是一个评论。 – 2011-05-23 20:44:31
您应该尝试使用24小时日期时间格式插入MySQL。 MySQL可能会忽略日期字符串中的AM/PM,因此所有内容都保存为AM。
$datecreated = date("Y-m-d H:i:s");
该OP认为'A'会允许12小时的时间。这是否属实。 :) – 2011-05-23 20:45:05
啊,当然..只是发现了真正的问题。现在我觉得很愚蠢:/ – SmokeyPHP 2011-05-23 20:48:24
对你的第二次尝试不错;) – 2011-05-23 20:54:21