我正在努力节省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
所以我有三个部分的问题:
我是以正确的方式做的吗?
我可以在上面执行的步骤之后将$_POST
的值直接存储到数据库中吗?如果在存储到数据库之前不需要什么处理?
所以在对$_POST['openTime']
进行上述更改之后,值为:$_POST[openTime] => 08:00:00 PM
请注意,还会根据时间进行数据库操作。例如:"所有地方都在晚上8点后开放?"
答案 0 :(得分:3)
MySQL TIME
字段类型的格式类似于HH:MM:SS
,范围从-838:59:59
到838:59:59
。 Read 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';
}