问题描述
|
我使用以下方式将当前时间和日期放入MySQL
$datecreated = date(\"Y-m-d,g:i:s A\");
然后将其显示给用户
$datecreated = date(\'n-j-Y,g:i:s A\',strtotime($row[\'datecreated\']));
一切都很好,除了时间始终是上午。我已经在上午和下午(还是上午)进行了测试。
解决方法
写入数据库时,请使用
date(\"Y-m-d H:i:s\")
(24小时表示法)。
否则,\“ PM \”(或\“ AM \”)部分会被截断,从而始终处于\“ AM \”状态。
,您应该使用“ 3”字段以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小时制。
,为什么不使用日期(\“ Y-m-d,G:i:s \”)?
,您也可以只更改服务器的时钟,而不必等到下午进行测试。
,您应该尝试使用24小时日期时间格式插入MySQL。 MySQL可能在日期字符串中忽略了AM / PM,因此所有内容都保存为AM。
$datecreated = date(\"Y-m-d H:i:s\");
,我认为此问题是由于您选择12小时制的日期格式造成的。将小写字母g更改为\“ G \”(无前导零)或\“ H \”(有前导零),因为它们都是24小时格式(0-23),而\“ g \”为12-小时格式(0-12)。