Я ввожу дату во фронтэнд как 10:00, 12:00 и т.д.... (означает формат 12 Часов). теперь я хочу сохранить то значение в базе данных в столбце типа данных времени. Как я сохраняю тот AM значение PM в тип данных времени в MySQL и снова хочу отобразить время, добавляя AM PM на фронтэнде?
Чтобы вставить:
# 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' );
EDIT:
Я просто пойду вперед и предположу, что вы используете 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
EDIT:
Adjusted %m
(месяц) к %i
(минуты). Спасибо Донни за хорошо заметный промах.
Использование функции mysql date_format с параметром% p