store AM PM time string into TIME datatype in MySQL and retrieve with AM PM while display?

落花浮王杯 提交于 2019-12-17 23:10:11

问题


I m entering date in front end as 10:00 AM , 12:00 PM etc...( means 12 Hours format). now I want to save that value in database in time datatype column. How do I save that AM PM value into time datatype in MySQL and again want to display time appending AM PM on front end?


回答1:


To insert:

# replace first argument of STR_TO_DATE with value from PHP/frontend
TIME( STR_TO_DATE( '10:00 PM', '%h:%i %p' ) );

To select:

# replace first argument with your time field
TIME_FORMAT( '22:00:00', '%h:%i %p' );

EDIT:
I'll just go ahead and presume you use mysql lib functions.

// 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 );

Then to retrieve the values:

$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 );

This will return a result set where the formatted data is in the *_formatted fields

EDIT:
Adjusted %m (month) to %i (minutes). A thank you to Donny for the well spotted slip up.




回答2:


use mysql function DATE_FORMAT with %p parameter




回答3:


This is the solution In your view----- $('#schedule_time' + ).datetimepicker({pickDate: false, format: 'h:m A', minTime: new Date(), useCurrent: false, autoClose: false});

when insert into datbase ----'schedule_time' => date('H:i:s', strtotime($this->input->post('schedule_time'))),

when show ---------



来源:https://stackoverflow.com/questions/2086313/store-am-pm-time-string-into-time-datatype-in-mysql-and-retrieve-with-am-pm-whil

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!