2011-01-09 39 views
36

我想知道是否有PHP的date()的格式化信函,允許我打印分鐘而不是前導零,或者我是否必須手動測試並刪除領先零?PHP date():無前導零的分鐘

+0

請問爲什麼地獄有沒有零無分??? – Jackt 2018-02-02 21:41:59

回答

77

用途:

$minutes = intval(date('i')); 
+1

瘋狂的PHP行爲!它將int'09'視爲八進制數,因爲前導零 - 由於「9」不是有效的八進制數,所以它將評估爲「0」。但它將字符串`09`視爲十進制整數`9`。再見,預期的行爲! :) – hek2mgl 2015-04-07 09:52:40

+0

最好使用`(int)date('i');`而不是`intval()`。它應該快得多。 – KoviNET 2017-10-25 13:23:06

3

看起來不像它,但你可以做這樣的事情......

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

或者,您可以用(int)投第二次調用date()

+0

太棒了!我很高興這很簡單。謝謝。 – Bojangles 2011-01-09 12:21:19

6

按照PHP Documentation,該date()功能沒有幾分鐘的佔位符,沒有前導零。

你可以,但是,通過簡單地乘以日期,有前導零,1,把它變成一個整數獲得這些信息。

$minutesWithoutZero = 1* date('i'); 
+1

這會起作用,但它比'(int)`有點冒險。 – alex 2011-01-09 12:20:37

+0

是的。只是在我的JavaScript日子裏使用不好的舊習慣。 – 2011-01-09 12:24:13

+0

+1爲新的解決方案盧卡斯。謝謝。由於簡單和不冒昧,我已經用`Hippo`的答案去了;-P – Bojangles 2011-01-09 12:24:30

3

這也適用

$timestamp = time(); //Or Your timestamp 
echo (int)date('i',$timestamp); 
+3

不需要在那裏添加`time()`。 – alex 2011-01-09 12:27:21

+2

@alex,我實際上試圖展示他可以在哪裏添加他自己的時間戳 – Starx 2011-01-09 12:29:12

0

或者在MySQL的只是1乘以它,像這樣:

select f1, ..., date_format(fldTime , '%i') * 1 as myTime, ..., ... 
5

我試圖找到這對秒爲好,放棄了搜索並且只是將結果施加爲如下所示的int:

echo (int)date("s"); 

這將以快速有效的方式擺脫前導零。

1
$current_date = Date("n-j-Y"); 
echo $current_date; 

// Result m-d-yy 

9-10-2012 
8

對於不僅僅是分鐘信息時報:

ltrim() - 地帶的空白(或其它字符)從字符串的開頭

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

回報:

8:24 
2

如果我需要XXmXXs格式,我使用這種格式:

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

這將輸出以下內容:

12m34s 
1m23s 
12s 
2

我只是做這一行溶液

$分鐘= INTVAL(日期( 'I',的strtotime($日期)) );

使用LTRIM方法可以刪除所有領先zeroes.For前,如果「00」 min.In這種情況下,這將刪除所有的零和給你空的結果。

0

我的解決辦法:

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

從我一個匆匆。告訴我你的想法:

<?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/>'; ?>