web-dev-qa-db-ja.com

PHP date():先行ゼロなしの分

PHPのdate()にフォーマット文字があり、分を出力できるかどうかを知りたいwithout先行ゼロ、または先行ゼロを手動でテストして削除する必要があるかどうか?

47
Bojangles

使用する:

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

数分よりも多くの情報がある時間の場合:

ltrim()-文字列の先頭から空白(または他の文字)を取り除きます

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

戻り値:

8:24
11
ScottA

PHPドキュメント によると、date()関数には、先頭にゼロを付けないで数分間のプレースホルダーがありません。

ただし、日付に先行ゼロを1だけ掛けて整数に変換することで、その情報を取得できます。

$minutesWithoutZero = 1* date( 'i' );
7
Luke Stevenson

私も数秒間これを見つけようとしましたが、検索をあきらめ、結果をこのようなintとしてキャストしました:

echo (int)date("s");

これにより、高速の効率的な方法で先行ゼロが取り除かれます。

7
Madmenyo

それのように見えませんが、次のようなことができます...

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

または、_(int)_を使用して、date()への2番目の呼び出しをキャストできます。

4
alex

これも機能します

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

XXmXXs形式が必要な場合は、この形式を使用します。

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

これにより、次が出力されます。

12m34s
1m23s
12s
2
Etienne Dupuis

私はこの1行のソリューションを実行しました

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

Ltrimメソッドを使用すると、すべての先行ゼロが削除される場合があります。たとえば、「00」以上の場合、この場合、これによりすべてのゼロが削除され、空の結果が得られます。

2
Smit kalwal

私の解決策:

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
raarts
$current_date = Date("n-j-Y");
echo $current_date;

// Result m-d-yy

9-10-2012
0
bariyaw

pHPの絶対値関数を使用します。

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

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

0
aequalsb

私からの急ごしらえ。ご意見をお聞かせください:

<?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
Edgars WEBHAUS

私の提案は、この美しいドキュメントを読んで、PHPの日付関数のすべての詳細を持っている

ドキュメントのリンク

そして、あなたの質問に応じて、i - Minutes with leading zeros (00 to 59)を使用できます。

また、[Intval()][2]関数を導入すると、変数の整数値が返されます。オブジェクトでintval()関数を使用することはできません

0
TarangP

または、mySQLでは次のように1を掛けます。

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

これを使用してください:

(int) date('i');
0
user3890355