PHP calcule la différence de période en minutes
En PHP, la différence minute entre deux fois peut être calculée par les méthodes suivantes: 1. Utilisez DateTime et DateInterval: Créez deux objets DateTime et appelez la méthode diff () pour obtenir l'intervalle, puis convertissez-la en minutes. Il convient aux scénarios logiques clairs et clairs; 2. Utilisez la soustraction de l'horodatage: utilisez StrtoTime pour se convertir en horodatage et calculez la différence et prenez la valeur absolue, qui convient aux calculs rapides et faciles, mais faites attention aux problèmes de format et de fuseau horaire; 3. Gérer les différences de fuseau horaire: utilisez DateTimeZone pour définir explicitement le fuseau horaire et convertir au même fuseau horaire pour la comparaison pour assurer la précision de la différence de temps réelle; De plus, il est recommandé d'utiliser la fonction ABS () lorsqu'il s'agit de résultats négatifs et de faire des jugements sur le format d'entrée ou la capture d'exception pour éviter les erreurs.
Le calcul de la différence minute entre deux fois n'est pas difficile en PHP, mais il doit être géré avec précision, en particulier lors de la conversion de différentes dates, fuseaux horaires ou formats, il y a encore des détails à qui il faut prêter attention.

1. Calcul simple à l'aide de DateTime
et DateInterval
PHP fournit une classe DateTime
orientée objet, qui est très adaptée au calcul du décalage horaire. L'idée de base est de créer deux objets DateTime
, puis d'utiliser diff()
pour obtenir l'intervalle entre elles et enfin convertir l'intervalle en minutes.

$ DateTime1 = new DateTime ('2025-04-05 10:00:00'); $ DateTime2 = new DateTime ('2025-04-05 11:30:00'); $ interval = $ DateTime1-> diff ($ DateTime2); $ minutes = ($ interval-> jours * 24 * 60) ($ interval-> h * 60) $ interval-> i; écho aux minutes de $; // Sortie 90
Les avantages de cette méthode sont du code clair, de la logique intuitive et capables de gérer les situations à travers le ciel.
2. Utilisez des horodatages pour soustraire directement
Si vous voulez simplement obtenir rapidement la différence entre deux fois, vous pouvez d'abord convertir le temps en horodatage, puis effectuer des opérations mathématiques:

$ time1 = strToTime ('2025-04-05 10:00:00'); $ time2 = strtotime ('2025-04-05 11:30:00'); $ minutes = abs (($ time2 - $ time1) / 60); // Utilisez des valeurs absolues pour éviter l'écho négatif $ minutes; // Sortie 90
Cette méthode est plus simple et adaptée aux scénarios avec des exigences de performance faibles. Mais deux choses à noter:
- Le temps doit être un format que
strtotime
peut analyser - Si différents fuseaux horaires sont impliqués, il est recommandé de définir le fuseau horaire uniformément pour éviter les erreurs
3. Gérer les différences de temps avec les fuseaux horaires
Si vous traitez les données de différentes régions, comme une fois, le temps de Pékin et l'autre est le temps américain, alors le problème du fuseau horaire ne peut pas être ignoré. Pour le moment, vous pouvez explicitement spécifier le fuseau horaire:
$ Timezone = new DateTimeZone ('Asia / Shanghai'); $ DateTime1 = new DateTime ('2025-04-05 10:00:00', $ Timezone); $ timezone2 = new DateTimeZone ('America / New_york'); $ DateTime2 = new DateTime ('2025-04-05 07:00:00', $ TimeZone2); // Force la conversion à la même comparaison du fuseau horaire (facultatif) $ DateTime2-> setTimeZone ($ TimeZone); $ minutes = ($ DateTime2-> Gettimestamp () - $ DateTime1-> gettimestamp ()) / 60; écho aux minutes de $; // Les résultats de sortie dépendent de la différence de fuseau horaire
Cela garantit que vous calculez le «vrai» différence de temps, plutôt que la différence de chaîne temporelle apparente.
Conseils: Évitez les nombres négatifs et les erreurs de format
En usage réel, les situations suivantes peuvent être rencontrées:
- L'ordre de temps est inversé et le résultat est négatif → Vous pouvez utiliser
abs()
pour obtenir la valeur absolue - Le format d'entrée n'est pas standard, ce qui fait que
strtotime
retourne faux → - La différence de date entre différents mois / années doit également être envisagée pour la conversion du nombre total de jours en minutes
Fondamentalement, ces méthodes sont à propos de cela. Quelle méthode est utilisée dépend de vos besoins spécifiques et de la forme des données d'entrée. Tant que vous faites attention à la cohérence du format et aux problèmes de fuseau horaire, cette tâche n'est en fait pas compliquée, mais il est en effet facile d'être piqué par des détails négligés.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT
Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Usefilter_var () tovalidateemailsyntaxandcheckdnsrr () toverifydomainmxrecords.example: $ email = "user@example.com"; if (f ilter_var ($ e-mail, filter_validate_email) && checkdnsrr (explosage ('@', $ e-mail) [1], 'mx')) {echo "ValidAndDeliverableMail & Qu

UseArray_merge () toCombineArrays, écrasant leduplicatestringKeysAndreIndexingNumericKeys; ForsimplecCaTencatenation, en particulierInphp5.6, usethesplatoperator [... $ array1, ... $ array2].

UseUnserialize (serialize ($ obj)) FordopcopyingwhenallDataisSerializable; Sinon, implémentez__Clone () TomanuallyDuplicatesedObjectsAndavoidSharedReferences.

Cet article explique en profondeur comment utiliser les instructions de cas pour effectuer une agrégation conditionnelle dans MySQL pour atteindre la sommation conditionnelle et le comptage de champs spécifiques. Grâce à un cas de système d'abonnement pratique, il montre comment calculer dynamiquement la durée totale et le nombre d'événements en fonction de l'état des enregistrements (tels que "end" et "annuler"), surmontant ainsi les limites des fonctions de somme traditionnelles qui ne peuvent pas répondre aux besoins d'une agrégation conditionnelle complexe. Le tutoriel analyse en détail l'application des instructions de cas en détail et souligne l'importance de la fusion lorsqu'il s'agit des valeurs nulles possibles de la jointure gauche.

NamespacesInphporganizEcodeAndPreventnamingConflictsBygroupingClasses, Interfaces, Functions et ConstantsunSunSaspecificName.2.DefineanamespaceusingTheNamesPaceSpaceKeyWordAtTopofaFile, suiviByTheNamesPacename, Suchasapp \ Controlers...USUSEUSEKEYWORDTOI

La méthodiette () méthodiste axée sur le point de réviser la mise en œuvre de l'inscription, ce qui permet de faire de la maintenance à la qualité de qualité et

ToupDateAdatabasereCorDinPhp, FirstConnectUsingPDoOrmysQLi, theNusepreparedStationStoExECUSEASECURSQLUPDATEQUERY.example: $ pdo = newPDO ("MySql: host = localhost; dbname = votre_database", $ username, $ mot de passe); $ sql = "dameussem =.

UsePathinfo ($ nom de fichier, pathinfo_extension) togetThefileExtension; itreliabblyHandlesMultipledototsEdGasases, renvoyantTheExtension (par exemple, "pdf") oranemptystringefNoneExists.
