Функция работает нативно в PHP. Так что должно работать быстро. Но я не проверял это.

ел бы знать, есть ли письмо форматирования для PHPdate() это позволяет мне печатать минутыбез лидирующие нули, или я должен вручную проверить и удалить лидирующие нули?

 Jackt02 февр. 2018 г., 22:41
Могу я спросить, ПОЧЕМУ, черт возьми, нет минут без нулей ???
 Umingo27 июн. 2018 г., 12:17
Да, пожалуйста, спросите .. я тоже хочу услышать этот ответ ...

Ответы на вопрос(14)

прочитайте эту прекрасную документацию, в которой есть все детали функций даты php

Ссылка на документацию

А по вашему вопросу вы можете использоватьi - Minutes with leading zeros (00 to 59) Которые возвращают вам минуты с нулем в начале (0).

А также представляя[Intval()][2] Функция возвращает целочисленное значение переменной. Вы не можете использовать функцию intval () для объекта

Быстрый от меня. Скажи мне, что ты думаешь:

<?php function _wo_leading_zero($n) {
    if(!isset($n[1])) return $n;

    if(strpos($n, '.') !== false) {
    $np = explode('.', $n); $nd = '.';
    }
    if(strpos($n, ',') !== false) {
    if(isset($np)) return false;
    $np = explode(',', $n); $nd = ',';
    }
    if(isset($np) && count($np) > 2) return false;
    $n = isset($np) ? $np[0] : $n;      

    $nn = ltrim($n, '0');
    if($nn == '') $nn = '0';
    return $nn.(isset($nd) ? $nd : '').(isset($np[1]) ? $np[1] : '');
}

echo '0 => '._wo_leading_zero('0').'<br/>'; // returns 0
echo '00 => '._wo_leading_zero('00').'<br/>'; // returns 0
echo '05 => '._wo_leading_zero('05').'<br/>'; // returns 5
echo '0009 => '._wo_leading_zero('0009').'<br/>'; //returns 9
echo '01 => '._wo_leading_zero('01').'<br/>'; //returns 1
echo '0000005567 => '._wo_leading_zero('0000005567').'<br/>'; //returns 5567
echo '000.5345453 => '._wo_leading_zero('000.5345453').'<br/>'; //returns 0.5345453
echo '000.5345453.2434 => '._wo_leading_zero('000.5345453.2434').'<br/>'; //returns false
echo '000.534,2434 => '._wo_leading_zero('000.534,2434').'<br/>'; //returns false

echo date('m').' => '._wo_leading_zero(date('m')).'<br/>';
echo date('s').' => '._wo_leading_zero(date('s')).'<br/>'; ?>

Мое решение:

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
Решение Вопроса

Просто используйте это:

(int) date('i');
 user389035504 июл. 2018 г., 13:52
@KrzysztofJaniszewski Спасибо за ответ. Извините, но мой родной язык не английский, поэтому мне сложно что-то объяснить по-английски. Но я попробую.(int) Функция работает нативно в PHP. Так что должно работать быстро. Но я не проверял это.
 Krzysztof Janiszewski03 июл. 2018 г., 14:27
Пожалуйста, объясните, как это работает и почему это хорошее решение.

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

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

12m34s
1m23s
12s
 Jasom Dotnet11 нояб. 2015 г., 16:29
Потрясающие! Даже лучше, чем решение @ScottA. Это мой код (тоже с часами)print ltrim(gmdate("H\hi\ms\s", $duration), '0mh');
$current_date = Date("n-j-Y");
echo $current_date;

// Result m-d-yy

9-10-2012
 Geek Num 8806 окт. 2012 г., 08:11
ОП ищет минуты не в стандартном формате даты

но вы могли бы сделать что-то вроде ...

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

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

 Bojangles09 янв. 2011 г., 13:21
Потрясающие! Я рад, что это так просто. Благодарю.
 MarsAndBack31 янв. 2019 г., 21:43
Спасибо за это; работает для меня.
Решение Вопроса

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

$minutes = intval(date('i'));
 hek2mgl07 апр. 2015 г., 11:52
Сумасшедшее поведение PHP! Это относится к инт09 как восьмеричное число из-за ведущего нуля - который оценит0 поскольку9 не является действительным восьмеричным числом. Но это относится к строке09 как десятичное целое9, Прощай, ожидаемое поведение! :)
 KoviNET25 окт. 2017 г., 15:23
Лучше использовать(int)date('i'); вместоintval(), Это должно быть намного быстрее.
 Rulisp26 нояб. 2018 г., 04:34
Ну, согласно документации, это ожидаемое поведение из-за второго параметра intval, которыйbase и по умолчанию он равен 10. PHP будет обрабатывать ввод восьмеричного числа, если база явно определена как0 или же8

select f1, ..., date_format( fldTime , '%i' ) * 1  as myTime, ..., ...
 Bojangles02 мар. 2012 г., 01:35
Я не просил решение для MySQL, но спасибо за альтернативу - я буду помнить об этом для форматирования, связанного с MySQL.

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

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

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

$timestamp = time(); //Or Your timestamp
echo (int)date('i',$timestamp);
 Starx09 янв. 2011 г., 13:29
@alex, я на самом деле пытался показать, где он мог бы добавить свою собственную метку времени
 alex09 янв. 2011 г., 13:27
Не нужно добавлятьtime() там.

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

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

возвращает:

8:24
 jave.web05 нояб. 2018 г., 20:49
Это хорошее решение, но просто плохой пример, оно должно быть простоltrim(date('i'), 0) а такжеltrim(date('s'), 0) отдельно :)
 Jasom Dotnet11 нояб. 2015 г., 16:19
Прекрасно вписывается в мою функцию (..elseif ($duration <= 3599 && $duration > 59) {..)
 Ludo - Off the record28 июл. 2014 г., 17:53
это не работает на время менее 1 минуты .. например: 00:24 приведет к: 24

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

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

$minutesWithoutZero = 1* date( 'i' );
 alex09 янв. 2011 г., 13:20
Это будет работать, но это немного хакернее, чем просто(int).
 Bojangles09 янв. 2011 г., 13:24
+1 за новое решение Lucanos. Благодарю. Я пошел сHippoответ в связи с его простотой и не хакерством ;-P
 Luke Stevenson09 янв. 2011 г., 13:24
Правда. Просто используя старые дурные привычки, которые я выучил в дни моего JavaScript.

отказался от поиска и просто привел результат в виде типа int следующим образом:

echo (int)date("s");

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

Ваш ответ на вопрос