J'utilise 2 horodatage dans mon tableau, à savoir Type de données starttime - horodatage et horodatage actuel . Type de données endtime-timestamp et valeur par défaut 0000-00-00 00:00:00
comment calculer la différence entre 2 timestamps en php starttime: 2016-11-30 03:55:06 endtimetime: 2016-11-30 11:55:06
Toute méthode procédurale doit être évitée . Utilisez la méthode OOP pour la différence date/heure:
$datetime1 = new DateTime('2016-11-30 03:55:06');//start time
$datetime2 = new DateTime('2016-11-30 11:55:06');//end time
$interval = $datetime1->diff($datetime2);
echo $interval->format('%Y years %m months %d days %H hours %i minutes %s seconds');//00 years 0 months 0 days 08 hours 0 minutes 0 seconds
Vous pouvez configurer le format de différence selon vos besoins.
%Y - use for difference in year %m - use for difference in months %d - use for difference in days %H - use for difference in hours (24 hour format) %i - use for difference in minutes %s - use for difference in seconds
Vous pouvez supprimer n'importe laquelle des valeurs ci-dessus selon vos besoins. Par exemple, si vous ne vous intéressez qu'à la différence d'heures et que vous savez que la différence ne peut pas dépasser 24 heures, utilisez uniquement %H
.
Si vous voulez avoir la différence totale en secondes, vous pouvez utiliser:
echo $difference_in_seconds = strtotime('2016-11-30 11:55:06') - strtotime('2016-11-30 03:55:06');//28800
Cela dépend de vos besoins et du format final dans lequel vous voulez avoir un décalage horaire.
Pour vérifier les références: http://php.net/manual/en/datetime.diff.php
J'espère que ça aide
Vous pouvez convertir vos horodatages en timestamp Unix (temps en secondes) en utilisant php strtotime, puis prendre la différence. Vous avez maintenant la différence de temps en secondes et pouvez convertir en ce dont vous avez besoin ... heures, minutes, jours
http://php.net/manual/en/function.strtotime.php
ex:
$ts1 = strtotime($start);
$ts2 = strtotime($end);
$seconds_diff = $ts2 - $ts1;
$time = ($seconds_diff/3600);
La réponse la plus simple (pour moi bien sûr) est ici
function dateDifference($date_1 , $date_2 , $differenceFormat = '%a' )
{
$datetime1 = date_create($date_1);
$datetime2 = date_create($date_2);
$interval = date_diff($datetime1, $datetime2);
return $interval->format($differenceFormat);
}
Dans ce cas, la fonction date_create () crée l'objet DateTime
essayez ce code, testé sur phpfiddle.org: -
function timestampdiff($qw,$saw)
{
$datetime1 = new DateTime("@$qw");
$datetime2 = new DateTime("@$saw");
$interval = $datetime1->diff($datetime2);
return $interval->format('%Hh %Im');
}
echo timestampdiff('1524794340', '1524803100');