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

Patricia Arquette
Libérer: 2024-10-18 12:02:03
original
1041 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal