Manipulation du temps en PHP : ajouter et soustraire 30 minutes de H:i
En PHP, la gestion des tâches liées au temps est cruciale pour divers candidatures. Un scénario courant consiste à modifier les valeurs de temps au format « H : i ». Ce format représente l'heure en heures et minutes, comme "10h00" ou "13h30".
Pour ajouter ou soustraire des intervalles de temps spécifiques à ces valeurs, nous pouvons utiliser strtotime() et date( ) fonctions. Cependant, un comportement inattendu peut se produire si la valeur d'heure initiale n'est pas correctement formatée en tant qu'horodatage.
Prenons un exemple dans lequel nous visons à créer deux nouvelles valeurs : $startTime 30 minutes avant $time et $endTime 30. minutes après $time, où $time a le format "H:i."
L'extrait de code ci-dessous peut sembler raisonnable à première vue :
<code class="php">$startTime = date("H:i",strtotime('-30 minutes',$time)); $endTime = date("H:i",strtotime('+30 minutes',$time));</code>
Cependant, après avoir dépassé "10h00" en tant que $time, nous rencontrons des résultats inattendus : $startTime devient "00:30" au lieu du "09:30" prévu et $endTime devient "01:30" au lieu de "10:30".
Le problème clé réside dans l’hypothèse initiale selon laquelle $time est un horodatage. Cependant, il s’agit simplement d’une chaîne au format « H:i ». Pour résoudre cela, il faut d'abord convertir $time en timestamp à l'aide de la fonction strtotime().
Le code corrigé :
<code class="php">$time = strtotime('10:00'); $startTime = date("H:i", strtotime('-30 minutes', $time)); $endTime = date("H:i", strtotime('+30 minutes', $time));</code>
Maintenant, les résultats correspondent à nos attentes : $startTime devient « 09h30 » et $endTime devient « 10h30 ». En garantissant que $time est un horodatage dès le départ, nous pouvons effectuer des manipulations temporelles précises en PHP.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!