Я хотел бы знать, есть ли письмо для форматирования PHP date(), которое позволяет мне печатать минуты без начальных нулей, или мне нужно вручную проверять и удалять начальные нули?
date()
Использование:
$minutes = intval(date('i'));
Для случаев с большим количеством информации, чем просто минуты:
ltrim() - убрать пробел (или другие символы) из начала строки
ltrim()
ltrim(date('i:s'), 0);
возвращает:
8:24
Я тоже пытался найти это в течение нескольких секунд, отказался от поиска и просто привел результат в виде целого числа вот так:
echo (int)date("s");
Это быстро и эффективно избавит от начальных нулей..
В соответствии с PHP-документацией функция date() не имеет заполнителя в течение нескольких минут без начальных нулей.
Однако вы можете получить эту информацию, просто умножив даты, с ведущим нулем, на 1, превращая его в целое число.
$minutesWithoutZero = 1* date( 'i' );
Не похоже, но вы могли бы сделать что-то вроде ...
echo date('g:') . ltrim(date('i'), '0');
В качестве альтернативы, вы могли бы бросить второй вызов на date() с (int).
(int)
Это также работает
$timestamp = time(); //Or Your timestamp echo (int)date('i',$timestamp);
я только что сделал это однострочное решение
$ min = intval (date ('i', strtotime ($ date)));
Использование метода ltrim может удалить все ведущие нули. Например, если '00' мин. В этом случае это удалит все нули и даст пустой результат.
Я использую этот формат, если мне нужен формат XXmXXs:
//Trim leading 0's and the 'm' if no minutes ltrim(ltrim(gmdate("i\ms\s", $seconds), '0'), 'm');
Будет выведено следующее:
12m34s 1m23s 12s
Мое решение:
function seconds2string($seconds) { if ($seconds == 0) { return '-'; } if ($seconds < 60) { return date('0:s', $seconds); } if ($seconds < 3600) { return ltrim(date('i:s', $seconds), 0); } return date('G:i:s', $seconds); }
Будет выведено:
0 seconds: - 10 seconds: 0:10 90 seconds: 1:30 301 seconds: 5:01 1804 seconds: 30:04 3601 seconds: 1:00:01
использовать функцию абсолютного значения PHP:
abs( '09' ); // result = 9
abs( date( 'i' ) ); // result = minutes without leading zero