Использование PHP для обрезки / правильного отображения типа данных Time MySQL - PullRequest
0 голосов
/ 29 июля 2011

Первый вопрос здесь, поэтому, пожалуйста, прости меня, если это кажется очевидным. У меня возникла небольшая проблема, связанная с типом данных TIME в моей базе данных MySQL, и я пытаюсь найти лучший способ обрезать ведущие нули от начала отметки времени.

Если говорить более конкретно, у меня есть таблица песен в моей базе данных, и в этой таблице у меня есть столбец song_length. В этом столбце используется тип данных Time, поэтому представление всегда имеет формат чч: мм: сс.

Если моя песня длится всего 3 минуты 42 секунды (например), я надеюсь, что она будет отображаться просто: 3:42, а не 00:03:42. Есть ли встроенная функция PHP (возможно, похожая на date ()), чтобы иметь дело с чем-то вроде этого?

Ответы [ 2 ]

1 голос
/ 29 июля 2011

Есть date() Вам просто нужно убедиться, что вы используете другой формат, когда $hours > 0

$d = new DateTime($time);
echo $d->format('H') > 0
   ? ltrim($d->format('H:i:s'), '0') 
   : ltrim($d->format('i:s'),   '0');

http://ideone.com/eAWun

0 голосов
/ 29 июля 2011

Разделите его на массив, затем приведите каждую часть к целому числу

$time = '00:03:42';
$parts = explode(':', $time);
$hours = (int) $parts[0];
$minutes = (int) $parts[1];
$seconds = (int) $parts[2];

Если бы вы были вами, я бы сохранил время как целое число, представляющее количество секунд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...