Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php AM PM未插入mysql表_Php_Mysql - Fatal编程技术网

Php AM PM未插入mysql表

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表中

有一个字段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表中…为什么


它的格式是: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