php - 将 24 小时时间格式的时间存储到具有列类型时间的数据库中

标签 php mysql codeigniter datetime time

我正在尝试将时间保存到 MySQL 数据库中。我在数据库中将列类型保留为 time

我从表单中获取 24 小时制时间的 $_POST

时间窗体的值如下:

 $_POST[openTime] = 20:00

当我使用 strtotime()date() 转换时间时,我得到的输出为:

$_POST['openTime'] = date( "h:i:s A", strtotime($_POST['openTime']));

输出:

$_POST[openTime] => 08:00:00 PM

所以我有一个由三部分组成的问题:

  1. 我的做法是否正确?

  2. 我可以在完成上述步骤后将 $_POST 的值直接存储到数据库中吗?如果没有,我入库前需要做哪些处理?

所以在上面更改为 $_POST['openTime'] 之后,值是:$_POST[openTime] => 08:00:00 PM

  1. 我是否需要再次将从数据库中获取的时间值转换为 PHP 时间对象?

请注意,还有基于时间的数据库操作。例如:“哪些地方晚上 8 点以后都开门?”

最佳答案

MySQL TIME 字段类型的格式类似于 HH:MM:SS,范围从 -838:59:59838 :59:59Read more here .基于此,您不能存储像 08:00:00 PM 这样的格式化时间。

如果您将开放时间发布为20:00,那么您需要使用H:i:s 格式:

$_POST['openTime'] = date("H:i:s", strtotime($_POST['openTime']));

但是恕我直言,这是不必要的。你需要的是一个验证,像这样:

if (preg_match('~^\d{2}:\d{2}$~', $_POST['openTime'])) {
    echo "posted time is valid!";
    $saveTime = $_POST['openTime'] . ':00';
}

关于php - 将 24 小时时间格式的时间存储到具有列类型时间的数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27357034/

相关文章:

php - 将天数添加到显示奇数的时间戳

php - 如何在wordpress中插入自定义图像和html

php - 如何将php购物车数据插入mysql数据库

mysql - 从插入语句的函数返回 mysql 错误消息

mysql - 如何将 5 天添加到选定的当前日期

javascript - MySQL查询表行上的onclick事件

php - 在此上下文中,元素 p 不允许作为元素 dl 的子元素。 (抑制来自该子树的更多错误。)

javascript - 我如何在 CodeIgniter 中以 php 形式使用 sweetalert2?

php - 带有 Active Record/MySQL 的 Codeigniter/电子商务下钻菜单

PHP foreach 类别和项目