PHP date(): minutes without leading zeros

后端 未结 15 1501
粉色の甜心
粉色の甜心 2020-12-13 23:17

I\'d like to know if there is a formatting letter for PHP\'s date() that allows me to print minutes without leading zeros, or whether I have to manuall

相关标签:
15条回答
  • 2020-12-13 23:54

    Just use this:

    (int) date('i');
    
    0 讨论(0)
  • 2020-12-13 23:57

    This also works

    $timestamp = time(); // Or Your timestamp. Skip passing $timestamp if you want current time
    echo (int)date('i',$timestamp);
    
    0 讨论(0)
  • 2020-12-13 23:57

    My solution:

    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);
    }
    

    This will output:

    0 seconds:            -
    10 seconds:        0:10
    90 seconds:        1:30
    301 seconds:       5:01
    1804 seconds:     30:04
    3601 seconds:   1:00:01
    
    0 讨论(0)
  • 2020-12-14 00:00

    I use this format if I need a XXmXXs format:

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

    This will output the following:

    12m34s
    1m23s
    12s
    
    0 讨论(0)
  • 2020-12-14 00:03

    A quickie from me. Tell me what you think:

    <?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/>'; ?>
    
    0 讨论(0)
  • 2020-12-14 00:06

    i just did this one line solution

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

    Using ltrim method may remove all the leading zeroes.For ex if '00' min.In this case this will remove all the zeroes and gives you empty result.

    0 讨论(0)
提交回复
热议问题