PHP date (): минуты без начальных нулей - PullRequest
47 голосов
/ 09 января 2011

Я хотел бы знать, есть ли письмо для форматирования PHP date(), которое позволяет мне печатать минуты без начальных нулей, или мне нужно вручную проверять и удалять начальные нули?

Ответы [ 15 ]

89 голосов
/ 09 января 2011

Использование:

$minutes = intval(date('i'));
11 голосов
/ 09 июля 2013

Для случаев с большим количеством информации, чем просто минуты:

ltrim() - убрать пробел (или другие символы) из начала строки

ltrim(date('i:s'), 0);

возвращает:

8:24
7 голосов
/ 09 апреля 2012

Я тоже пытался найти это в течение нескольких секунд, отказался от поиска и просто привел результат в виде целого числа вот так:

echo (int)date("s");

Это быстро и эффективно избавит от начальных нулей..

7 голосов
/ 09 января 2011

В соответствии с PHP-документацией функция date() не имеет заполнителя в течение нескольких минут без начальных нулей.

Однако вы можете получить эту информацию, просто умножив даты, с ведущим нулем, на 1, превращая его в целое число.

$minutesWithoutZero = 1* date( 'i' );
4 голосов
/ 09 января 2011

Не похоже, но вы могли бы сделать что-то вроде ...

echo date('g:') . ltrim(date('i'), '0');

В качестве альтернативы, вы могли бы бросить второй вызов на date() с (int).

3 голосов
/ 09 января 2011

Это также работает

$timestamp = time(); //Or Your timestamp
echo (int)date('i',$timestamp);
2 голосов
/ 26 февраля 2014

я только что сделал это однострочное решение

$ min = intval (date ('i', strtotime ($ date)));

Использование метода ltrim может удалить все ведущие нули. Например, если '00' мин. В этом случае это удалит все нули и даст пустой результат.

2 голосов
/ 11 октября 2013

Я использую этот формат, если мне нужен формат XXmXXs:

//Trim leading 0's and the 'm' if no minutes
ltrim(ltrim(gmdate("i\ms\s", $seconds), '0'), 'm');

Будет выведено следующее:

12m34s
1m23s
12s
1 голос
/ 06 января 2017

Мое решение:

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
0 голосов
/ 01 мая 2019

использовать функцию абсолютного значения PHP:

abs( '09' ); // result = 9

abs( date( 'i' ) ); // result = minutes without leading zero

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