2015-03-13 2 views
0

У меня есть столбец типа «время» в базе данных mySQL. Я показываю его в 12-часовом формате на веб-сайте. Зачем мне нужно использовать strtotime()?Почему мне нужно использовать strtotime() для преобразования mySQL в PHP?

$time = date('g:i a', strtotime($time)) ; 

Я знаю, что это работает, я просто интересно, почему мне нужно использовать специальную функцию для преобразования одного типа «время» в другой. Устанавливает ли PHP мой столбец времени mySQL строку?

+2

Простой ответ, ДА. Однако лучше всего сделать формирование в самом запросе с помощью функции формата http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format –

+0

@DavidSoussan если сможешь. Много раз вам приходилось «ВЫБРАТЬ» каждый столбец (например, «SELECT start_time, end_time») вместо того, чтобы использовать «SELECT *». Форматирование в запросе часто не представляется возможным в тех случаях, когда у вас много столбцов, которые вы выбираете. – Patrick

+0

Итак, используйте VIEW, в котором перечислены все столбцы и форматы дат и т. Д. Напишите его, когда-то используйте его. Многие пуристы скажут, что SELECT * - мерзость. Я этого не делаю, но тогда я не уклоняюсь от перечисления столбцов, когда мне это нужно. –

ответ

1

Поскольку функция date() принимает целочисленную временную метку, которая обозначает количество секунд sinds Epoch. В вашей базе данных время хранится по-разному (строка даты, которую PHP просто видит как обычную строку), поэтому вам нужно сначала ее преобразовать. Итак, ваши предположения верны.

Смежные вопросы