PHP trouve la différence entre deux dates
Que j'essaie de faire la différence entre les deux datetimes et de le retourner comme un datetime. J'ai trouvé des exemples d'utilisation de diff, mais je n'arrive pas à obtenir ce droit.
$timein = date("Y-m-d H:i:s");
$timeout = date("Y-m-d 20:00:00");
$totaltime = $timein->diff($timeout);
Cependant $tempstotal journaux "0000-00-00 00:00:00" à ma DB. Est-ce parce que je ne suis pas le formatage de mon tempstotal variable?
source d'informationauteur Staleyr
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr que le format que vous cherchez dans votre différence, mais voici comment le faire en utilisant DateTime
Vous pouvez simplement utiliser datetime diff et le format pour le calcul de la différence.
Pour plus d'informations DE format DATETIME, consultez: ici
Vous pouvez modifier l'intervalle de format dans la façon dont vous le souhaitez.
Ici est l'exemple
P. S. Ces caractéristiques( diff() et format()) travailler avec >=PHP 5.3.0 seulement
Jean-Conde n'a tous le droit des procédures dans sa méthode, mais ne satisfait pas la dernière étape de votre cause, qui est de formater le résultat de votre cahier des charges.
Ce code (Démo) affichage de l'écart brut, exposer le problème avec le fait d'essayer immédiatement format raw différence d'affichage de mon étapes de préparation, et enfin de présenter les correctement formaté résultat:
De sortie:
Maintenant, pour expliquer ma valeur datetime préparation:
$details
prend la diff objet et les jette comme un tableau.array_flip(['y','m','d','h','i','s']) crée un tableau de clés qui seront utilisés pour supprimer toutes les clés non pertinents de
(array)$diff
à l'aide de array_intersect_key().Puis à l'aide de array_map() ma méthode d'itération de chaque valeur et la clé dans
$details
plaquettes de son côté gauche, à la longueur appropriée avec0
's, et concatène$r
(suite) chaîne de caractères contenant le nécessaire séparateurs pour se conformer demandé format datetime.