2016-12-01 25 views
8

Używam 2 znacznik czasu w mojej tabeli, który jest datatype Data rozpoczęcia-data i jako bieżący znacznik czasu. endtime typ danych, datownik i jako domyślny 0000-00-00 00:00:00obliczyć różnicę między 2 znacznikami czasowymi w php

Jak obliczyć różnicę między 2 znaczników czasu w php StartTime: 30.11.2016 03:55:06 endtimetime: 2016- 11-30 11:55:06

+1

Cześć, co interwał chcesz (sekundy lub godziny lub dni)? – Ronald

+0

Możliwy duplikat [Jak znaleźć różnicę godzin między dwiema datami w PHP?] (Http://stackoverflow.com/questions/3763476/how-do-i-find-the-hour-difference-between-two- date-in-php) – Ronald

+2

Możliwy duplikat [Jak uzyskać różnicę czasu w minutach w PHP] (http://stackoverflow.com/questions/365191/how-to-get-time-difference-in-minutes-in- php) – chus

Odpowiedz

3

Możesz konwertować znaczniki czasu na uniksowy znacznik czasu (czas w sekundach) za pomocą pht strtotime, a następnie wykorzystaj różnicę. Teraz masz różnicę czasu w sekundach i może przekształcić się, co trzeba ... godziny, minuty, dni

http://php.net/manual/en/function.strtotime.php

ex:

$ts1 = strtotime($start); 
$ts2 = strtotime($end);  
$seconds_diff = $ts2 - $ts1;        
$time = ($seconds_diff/3600); 
6

Każdy sposób proceduralny należy unikać. metoda użycie OOP dla różnicy czasu data:

$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 

można sformatować różnica konfiguracja jak na swoje potrzeby.

%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 

Można usunąć dowolny z powyższych wartości, jak na swoje potrzeby. Na przykład, jeśli interesuje Cię tylko różnica godzin i wiesz, że różnica nie może być większa niż 24 godziny, a następnie użyj tylko %H.

Jeśli chcesz mieć całkowitą różnicę w sekundach następnie można użyć:

echo $difference_in_seconds = strtotime('2016-11-30 11:55:06') - strtotime('2016-11-30 03:55:06');//28800 

zależy od twoich potrzeb i ostatecznej formie, w której chcesz mieć różnicę czasu.

Dla sprawdzenia odniesienia: http://php.net/manual/en/datetime.diff.php

Mam nadzieję, że to pomaga

Powiązane problemy