Maison  >  Article  >  développement back-end  >  Lors de la gestion des formats d'heure en PHP, comment pouvons-nous éviter des résultats inattendus ?

Lors de la gestion des formats d'heure en PHP, comment pouvons-nous éviter des résultats inattendus ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-18 12:02:03944parcourir

When Handling Time Formats in PHP, How Can We Avoid Unexpected Results?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn