PHP date():不带前导零的分钟

问题描述 投票:0回答:15

我想知道 PHP 的

date()
是否有一个格式化字母,可以让我打印分钟数 不带 前导零,或者我是否必须手动测试并删除前导零?

php date format
15个回答
109
投票

用途:

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

20
投票

对于信息比分钟更多的时间:

ltrim()
- 从字符串开头去除空格(或其他字符)

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

返回:

8:24

8
投票

根据 PHP 文档

date()
函数没有不带前导零的分钟占位符。

但是,您可以通过简单地将带前导零的日期乘以 1,将其转换为整数来获取该信息。

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

7
投票

我也尝试了几秒钟找到这个,放弃了搜索,只是将结果转换为这样的 int :

echo (int)date("s");

这将以快速有效的方式消除前导零。


4
投票

看起来不像,但你可以做类似的事情...

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

或者,您可以使用

date()
将第二个呼叫投射到
(int)


3
投票

这也有效

$timestamp = time(); // Or Your timestamp. Skip passing $timestamp if you want current time
echo (int)date('i',$timestamp);

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
投票

我刚刚做了这一行解决方案

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

使用 ltrim 方法可能会删除所有前导零。例如,如果 '00' 分钟。在这种情况下,这将删除所有零并给出空结果。


1
投票

我的解决方案:

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

1
投票

就用这个:

(int) date('i');

0
投票

或者在 mySQL 中只需将其乘以 1,如下所示:

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

0
投票
$current_date = Date("n-j-Y");
echo $current_date;

// Result m-d-yy

9-10-2012

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

0
投票

使用PHP的绝对值函数:

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

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


-2
投票

我的建议是阅读这个漂亮的文档,它包含 php 日期函数的所有详细信息

文档链接

根据您的问题,您可以使用

i - Minutes with leading zeros (00 to 59)
,它会返回带前导零(0)的分钟数。

并且还引入了

[Intval()][2]
函数返回变量的整数值。您不能在对象上使用 intval() 函数

© www.soinside.com 2019 - 2024. All rights reserved.