Php AM PM未插入mysql表
有一个字段curdate,比如Php AM PM未插入mysql表,php,mysql,Php,Mysql,有一个字段curdate,比如 <?php $date = date_default_timezone_set('Asia/Kolkata'); $time= date("l, F d, Y h:i:s A"); ?> <input type="hidden" value="<?php echo $time; ?>" name="curdate" id="curdate"/> 问题是它没有将AM、PM部分放入mysql表中
<?php
$date = date_default_timezone_set('Asia/Kolkata');
$time= date("l, F d, Y h:i:s A");
?>
<input type="hidden" value="<?php echo $time; ?>" name="curdate" id="curdate"/>
问题是它没有将AM、PM部分放入mysql表中…为什么
它的格式是:2013-07-20 13:26:35(不存在上午和下午)。我的sql日期以24小时格式存储,也以二进制存储。如果表示需要12小时的显示格式,则必须在表示层中进行处理。MySQL有几种。您似乎使用了DATETIME,它以
YYYY-MM-DD HH:MM:SS
的形式显示值。请注意,HH
是24小时格式
您不应该额外存储AM/PM,因为这将是完全多余的。在最好的情况下,你会浪费内存,在最坏的情况下,你会得到不一致
相反,您应该在表示层中处理此问题:
if(hh >= 12) {
PM
} else {
AM
}
hours = hh % 12
请注意,您可以使用MySQL获得您喜欢的格式。它可能是这样的:
SELECT DATE_FORMAT(myStoredDatabaseAttribute, '%h %p') FROM myTable
当您使用24小时制时,为什么需要AM/PM?因此,您的日期格式是
yyyy-mm-dd hh:mm:ss
。现在if(hh>=12){PM}else{AM}
^this和$hours%12
应该为您提供正确的AM/PM小时检查数据库中的字段类型,如果它是datetime
,将接受格式2013-07-20 13:26:35
如果要存储am/pm,请将字段类型更改为varchar
@Kathiravan:如果仅为am/pm,则应将其更改为char(2)
。但正如我在回答中所解释的,他应该只使用DATETIME。
SELECT DATE_FORMAT(myStoredDatabaseAttribute, '%h %p') FROM myTable