Mam dwie daty, sformatowane jak "Y-m-d H: i: s". Muszę porównać te dwie daty i obliczyć różnicę godzin.Jak znaleźć różnicę godzin między dwiema datami w PHP?
Odpowiedz
można konwertować je do znaczników czasu i go stamtąd:
$hourdiff = round((strtotime($time1) - strtotime($time2))/3600, 1);
Dzielenie przez 3600, ponieważ istnieje 3600 sekund w ciągu jednej godziny i obsługiwanie round()
, aby uniknąć konieczności wiele miejsc po przecinku.
dziękuję, to właśnie próbowałem, ale próbowałem podzielić przez 24. – mike
Użycie 'strtotime()' jest ** nie najlepszym sposobem ** zarządzania datami. Rozważ użycie '\ DateTime :: createFromFormat ($ date, 'Y-m-d H: i: s') -> diff ($ dto2)' lub podobnej funkcjonalności do pracy z datami (_ + znamy format, który spodziewamy się parsować_). Na zewnątrz jest już prawie 2015, róbmy rzeczy w elegancki sposób! –
poza tym, że createFromFormat przyjmuje format $ $ jako pierwszy parametr;) '\ DateTime :: createFromFormat ('Y-m-d H: i: s', $ date) -> diff ($ dto2)' – Asmodiel
$seconds = strtotime($date2) - strtotime($date1);
$hours = $seconds/60/60;
Możesz użyć strtotime()
, aby przetworzyć struny i zrobić różnicę między nimi dwoma.
Zasoby:
Pokaż kod. –
Problem polega na tym, że za pomocą tych wartości wynik jest 167, a powinno być 168:
$date1 = "2014-03-07 05:49:23";
$date2 = "2014-03-14 05:49:23";
$seconds = strtotime($date2) - strtotime($date1);
$hours = $seconds/60/60;
Jako dodatek do przyjętych ans Chciałbym przypomnieć, że \DateTime::diff
jest dostępna! Dokumentacja:
$f = 'Y-m-d H:i:s';
$d1 = \DateTime::createFromFormat($date1, $f);
$d2 = \DateTime::createFromFormat($date2, $f);
/**
* @var \DateInterval $diff
*/
$diff = $d2->diff($d1);
$hours = $diff->h + ($diff->days * 24); // + ($diff->m > 30 ? 1 : 0) to be more precise
.
Można użyć interfejsu DateTime Również -
$d1= new DateTime("06-08-2015 01:33:26pm");
$d2= new DateTime("06-07-2015 10:33:26am");
$interval= $d1->diff($d2);
echo ($interval->days * 24) + $interval->h;
Można spróbować to:
$dayinpass = "2016-09-23 20:09:12";
$today = time();
$dayinpass= strtotime($dayinpass);
echo round(abs($today-$dayinpass)/60/60);
Wynika to z dnia oszczędność czasu. Czas letni (Stany Zjednoczone) 2014 rozpoczął się o godzinie 02:00 w niedzielę, 9 marca.
Utracisz jedną godzinę w okresie od $ date1 = "2014-03-07 05:49:23" do $ date2 = "2014-03-14 05:49:23";
$date1 = date_create('2016-12-12 09:00:00');
$date2 = date_create('2016-12-12 11:00:00');
$diff = date_diff($date1,$date2);
$hour = $diff->h;
- 1. Jak znaleźć różnicę między datami w VBA
- 2. PHP Różnica w miesiącach między dwiema datami?
- 3. Jak znaleźć liczbę dni między dwiema datami
- 4. Jak znaleźć różnicę między dwiema liczbami całkowitymi?
- 5. Jak znaleźć różnicę między dwiema listami słowników?
- 6. Oblicz różnicę między dwiema datami w smarty 3 szablon prestashop
- 7. Jak uzyskać różnicę między dwiema datami pod bash?
- 8. obliczenie różnicy między dwiema datami
- 9. Różnica między dwoma datami w dokładnej liczbie godzin w SQL
- 10. Jak znaleźć liczbę dni między dwiema datami/DateTimePickers
- 11. Jak znaleźć różnicę między dwoma datami przy użyciu Javascript
- 12. Jak uzyskać różnicę między dwiema datami w godzinach, minutach i sekundach?
- 13. Miesiące między dwiema datami funkcja
- 14. genarate daty między dwiema datami w Androidzie
- 15. Różnica między datami w JavaScript
- 16. Jak uzyskać różnicę w minutach między dwiema datami w programie Microsoft Excel?
- 17. Jak wyświetlić wszystkie daty między dwiema datami?
- 18. Jak wybrać wszystkie godziny między dwiema datami?
- 19. Jak obliczyć różnicę między dwoma datami w tygodniach w pytonie
- 20. Dni między dwiema datami w języku Python
- 21. Integer różnica w python między dwiema datami
- 22. Jak znaleźć różnicę między danymi dwóch kolumn?
- 23. PHP znaleźć różnicę między dwoma datetimes
- 24. Formula dla Suma godzin między dwoma datami w ms excel
- 25. Utwórz zakres miesięcy między dwiema datami ruby
- 26. Zdobywaj zdarzenia kalendarza między dwiema datami
- 27. C dni programu między dwiema datami
- 28. liczba miesięcy między dwiema datami - z datą boosta
- 29. Java, obliczyć liczbę dni między dwiema datami
- 30. Mysql: Wybierz wszystkie dane między dwiema datami
Czy próbowałeś coś? Na przykład możesz przekonwertować je zarówno na znaczniki czasu unix (sekundy) za pomocą 'strtotime', a następnie odjąć je, a następnie podzielić przez 3600, aby uzyskać godziny – Fanis
Tak, dzieliłem przez 24 zamiast 3600. doh! – mike