40 votes

Vérifier en PHP si l'heure actuelle est antérieure à l'heure spécifiée

Je dois vérifier en PHP si l'heure actuelle est avant 14h ce jour-là.

Je l'ai déjà fait avec strtotime sur des dates auparavant, cependant cette fois-ci c'est avec une heure uniquement, donc évidemment à 0h00 chaque jour l'heure se réinitialisera, et le booléen passera de false à true.

if (heure_actuelle < 14h) {
   // faire ceci
}

87voto

thebluefox Points 816
if (date('H') < 14) {
   $pre2pm = true;
}

Pour plus d'informations sur la fonction date, veuillez consulter le manuel PHP. J'ai utilisé le formateur de temps suivant :

H = format 24 heures d'une heure (00 à 23)

32voto

Merlyn Morgan-Graham Points 31815

Essayez:

if(date("Hi") < "1400") {
}

Voir: http://php.net/manual/en/function.date.php

H   Format 24 heures d'une heure avec des zéros précédents    00 à 23
i   Minutes avec des zéros précédents                      00 à 59

15voto

JohnP Points 29302

Vous pourriez simplement passer le temps

if (time() < strtotime('14h')) {
   //pas encore 14h
}

Ou passer également la date explicitement

if (time() < strtotime('14h' . date('d-m-Y'))) {
   //pas encore 14h
}

7voto

Treffynnon Points 13385

Utilisez l'heure en format 24 heures pour contourner le problème de la manière suivante :

$time = 1400;
$current_time = (int) date('Hi');
if($current_time < $time) {
    // faire quelque chose
}

Ainsi, 14h équivaut à 14h00 en format 24 heures. Si nous enlevons les deux-points de l'heure, nous pouvons l'évaluer en tant qu'entier dans notre comparaison.

Pour plus d'informations sur la fonction date, veuillez consulter le manuel PHP. J'ai utilisé les formateurs de temps suivants :

H = format de l'heure en 24 heures (00 à 23)

i = minutes avec des zéros (00 à 59)

2voto

Jovan Perovic Points 6978

Vous ne nous avez pas dit quelle version de PHP vous utilisez, bien que, en supposant que c'est PHP 5.2.2+, vous devriez pouvoir le faire comme ceci :

$now = new DateTime();
$twoPm = new DateTime();
$twoPm->setTime(14,0); // 14h00

ensuite, demandez simplement :

if ( $now < $twoPm ){ // une telle comparaison existe en PHP >= 5.2.2
    // faire ceci
}

sinon, si vous utilisez une version plus ancienne (disons, 5.0) ceci devrait fonctionner (et est beaucoup plus simple) :

$now = time();
$twoPm = mktime(14); // le premier argument est l'HEURE

if ( $now < $twoPm ){
    // faire ceci
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X