web-dev-qa-db-fra.com

PHP date (): minutes sans zéros majuscules

J'aimerais savoir s'il existe une lettre de formatage pour date() de PHP qui me permet d'imprimer des minutes sans zéros au début, ou si je dois tester et supprimer manuellement les zéros au début?

44
Bojangles

Utilisation:

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

Pour des moments avec plus d'informations que quelques minutes:

ltrim() - Efface les espaces (ou autres caractères) du début d'une chaîne

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

résultats:

8:24
11
ScottA

Selon la documentation PHP , la fonction date() ne dispose pas d'espace réservé pendant des minutes sans zéros au début.

Vous pouvez toutefois obtenir cette information en multipliant simplement les dates, avec un zéro non significatif, par 1, en le transformant en un entier.

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

J'ai aussi essayé de trouver ceci pendant quelques secondes, j'ai abandonné la recherche et j'ai juste transtypé le résultat sous la forme d'un int comme ceci:

echo (int)date("s");

Cela éliminera rapidement le premier zéro de manière efficace.

6
Madmenyo

Ça ne ressemble pas à ça, mais vous pourriez faire quelque chose comme ...

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

Alternativement, vous pouvez lancer le deuxième appel à date() avec (int).

4
alex

Cela fonctionne aussi

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

J'utilise ce format si j'ai besoin d'un format XXmXXs:

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

Cela produira les éléments suivants:

12m34s
1m23s
12s
2
Etienne Dupuis

je viens de faire cette solution d'une ligne

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

L’utilisation de la méthode ltrim peut supprimer tous les zéros non significatifs.

2
Smit kalwal

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

Cela produira:

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

Un quickie de moi. Dis-moi ce que tu penses:

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

Ma suggestion est Lisez cette belle documentation, elle contient tous les détails des fonctions de date php

Lien de la documentation

Et selon votre question, vous pouvez utiliser i - Minutes with leading zeros (00 to 59) qui vous renvoie les minutes avec un zéro (0).

De plus, l'introduction de la fonction [Intval()][2] renvoie la valeur entière d'une variable. Vous ne pouvez pas utiliser la fonction intval () sur un objet

0
TarangP

Ou, dans mySQL, il suffit de le multiplier par 1, comme ceci:

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

Il suffit d'utiliser ceci:

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