php - AM PM 未插入 mysql 表

标签 php 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"/>

它将把当前日期和时间存入数据库。

还有一列'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(没有 AM PM 存在)。

最佳答案

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

关于php - AM PM 未插入 mysql 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17760720/

相关文章:

mysql - 如何从 MySql 列中删除或转换非 UTF 8/UTF-8 字符

mysql - 简洁的批量查询而不是多次执行的单个查询

javascript - 服务器设置的 cookies 第一次不会在 javascript 中显示

php - Yii 中的样式管理页面

mysql - SQLAlchemy AppEngine 标准 - 与 MySQL 服务器的连接丢失

php - 插入数据后检查数据库并更新 ListView

php - 下拉列表中的 if 语句取决于数据库值和用户登录

php - 在 Woocommerce 中隐藏已添加到购物车消息

PHP:如何列出目录中的文件而不列出子目录

php - mysql 中的事件调度程序每 1 分钟运行一次