嘿伙计们,我正在做这个表格,其输入将包含时间,我想让它成为当用户选择时间时(例如上午8:30),它将存储在mysql中,并且将会确切的时间(早上8:30)由PHP输出。
这是表格。一个简单的选择按钮,时间增量为30。
主要问题是我不知道如果它是AM / PM,mysql将如何识别?
我应该为选择字段添加什么值,如何将其插入到mysql数据库中,并让mysql或php识别它是在凌晨1点或下午1点。在mysql中是否有某种24小时时钟可以识别是否是AM / PM?
答案 0 :(得分:2)
<强> TIME 强>
一个时间。范围是'-838:59:59'到'838:59:59'。 MySQL以'HH:MM:SS'格式显示TIME值,但允许您使用字符串或数字为TIME列分配值。
它会很好地解析选择选项中的值。
修改:使用示例:
// saving in the db
$sql = "
INSERT INTO table_name SET
# ...
name_of_the_time_column = '" . mysql_real_escape_string($_POST['start_time']) . "'";
// retrieving from the db
$sql = "
SELECT id, ..., TIME_FORMAT(name_of_the_time_column, '%h:%i:%s %p') AS formatted_time
FROM table_name
# ...
";
答案 1 :(得分:0)
未经测试:
INSERT INTO myTable
SET time = TIME(STR_TO_DATE('8:30:00 AM','%h:%m:%s %p'))
答案 2 :(得分:0)
这是MySQL的时间/日期。我认为TIME
类型最适合您,因为您不需要日期,并且您为您的值获得的格式应该很合适。我认为你可以把它们作为完全相同的字符串。
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-types.html
通过表单提交或ajax提交并且您的响应PHP页面接管后,在PHP中使用以下字符串执行查询:
"INSERT INTO table (userId, time, ...) VALUES (..., '$inTime', ...)"
然后回复它,因为你希望下一页重复它。
我想你的意思是,当你在以后回复它时,你希望13:00:00
成为1:00 PM
吗?
Theres可能是你可以用PHP或MySQL的时间函数做的(下面的PHP,上面的MySQL),但我不知道从内存中这很简单,你可以自己做。 http://www.php.net/manual/en/ref.datetime.php
$time = //get time field from MySQL
list($h, $m, $s) = explode($time, ':');
if ($h > 12) {$h -= 12; $amOrPm = 'PM'}; else {$amOrPm = 'AM';}
if ($h == 0) {$h = 12;}
echo "$h:$m $amOrPm";
PS - 13:00:00是下午1点,不是上午。