嘿,伙计们,我正在做这个表单,输入将包含时间,我想这样当用户选择时间(例如上午8:30 )时,它将存储在mysql中,并将通过php输出精确的时间(上午8:30)。
这是表格。一个简单的选择按钮,时间增量为30。
http://jsfiddle.net/jXVPS/
主要的问题是我不知道mysql如何识别它是AM/PM?
我应该为选择字段设置什么值,如何将其插入到mysql数据库中,以及让mysql或php识别是1:00 AM还是1:00 PM在mysql中有没有一种24小时时钟可以让它识别是否是AM/PM?
发布于 2011-03-22 09:26:14
下面是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
,对吧?
对于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点,不是上午
发布于 2011-03-22 09:18:50
使用TIME column type
TIME
一段时间。范围是'-838:59:59‘到'838:59:59’。MySQL以'HH:MM:SS‘格式显示时间值,但允许您使用字符串或数字将值分配给时间列。
它将很好地解析select选项中的值。
编辑:使用示例:
// 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
# ...
";
发布于 2011-03-22 09:19:38
未测试:
INSERT INTO myTable
SET time = TIME(STR_TO_DATE('8:30:00 AM','%h:%m:%s %p'))
https://stackoverflow.com/questions/5385664
复制相似问题