有一个字段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"/>
将数据库的当前日期和时间。
还有另一列'curdatesql',它需要上面的时间到mysql时间格式:
"' . $this->SanitizeForSQL($formvars['curdate']) . '",
STR_TO_DATE("' . $this->SanitizeForSQL($formvars['curdate']) . '","%W, %M %d, %Y %h:%i:%s %p"),
问题是它没有将AM,PM部分放入mysql表中......为什么会这样?
它的表现如下:2013-07-20 13:26:35(上午不上午)。
答案 0 :(得分:1)
MySQL有几个date and time formats。您好像使用DATETIME,它以YYYY-MM-DD HH:MM:SS
的形式显示值。请注意,HH
是24小时格式。
您不应该存储AM / PM,因为这将是完全冗余的。在最好的情况下,你会浪费内存,在最坏的情况下你会得到不一致。
相反,您应该在表示层中处理此问题:
if(hh >= 12) {
PM
} else {
AM
}
hours = hh % 12
请注意,您可以使用MySQL DATE_FORMAT来获取您喜欢的格式。它看起来像这样:
SELECT DATE_FORMAT(myStoredDatabaseAttribute, '%h %p') FROM myTable
答案 1 :(得分:0)
我的sql日期以24小时格式存储,也以二进制格式存储。如果表示需要12小时的显示格式,则必须在表示层中处理它。