我在前端输入日期 10:00 AM , 12:00 PM 等...(表示12小时格式)。 现在我想在 time 数据类型列中将该值保存在数据库中。如何在AM中将AM PM值保存为 time 数据类型,并再次希望在前端显示附加 AM PM 的时间?
答案 0 :(得分:14)
要插入:
# replace first argument of STR_TO_DATE with value from PHP/frontend
TIME( STR_TO_DATE( '10:00 PM', '%h:%i %p' ) );
选择:
# replace first argument with your time field
TIME_FORMAT( '22:00:00', '%h:%i %p' );
修改强>
我将继续并假设你使用mysql lib函数。
// first sanitize the $_POST input
// also, make sure you use quotes to identify the $_POST keys
$open = mysql_real_escape_string( $_POST[ 'MondayOpen' ] );
$close = mysql_real_escape_string( $_POST[ 'MondayClose' ] );
// this is the query, which should work just fine.
$sql = '
INSERT INTO
`table_lib_hours`
SET
`day_name` = "Monday",
`day_open_time` = TIME( STR_TO_DATE( "' . $open . '", "%h:%i %p" ) ),
`day_close_time` = TIME( STR_TO_DATE( "' . $close . '", "%h:%i %p" ) )
';
$result = mysql_query( $sql );
然后检索值:
$sql = '
SELECT
`day_open_time`,
`day_close_time`,
TIME_FORMAT( `day_open_time`, "%h:%i %p" ) as day_open_time_formatted,
TIME_FORMAT( `day_close_time`, "%h:%i %p" ) as day_close_time_formatted
FROM
`table_lib_hours`
WHERE
`day_name` = "Monday"
';
$resultset = mysql_query( $sql );
这将返回格式化数据位于*_formatted
字段
修改强>
已调整%m
(月)至%i
(分钟)。感谢Donny发现了一个很好的滑倒。
答案 1 :(得分:0)
使用带有%p参数的mysql函数DATE_FORMAT
答案 2 :(得分:0)
这是解决方案 在您的视图中----- $('#schedule_time'+).datetimepicker({pickDate:false,format:'h:m A',minTime:new Date(),useCurrent:false,autoClose:false});
当插入datbase时----'schedule_time'=> date('H:i:s',strtotime($ this-> input-> post('schedule_time'))),
何时显示---------