Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] ile czasu minęło
Forum PHP.pl > Forum > PHP
manipulator
Witajcie,
Otóż mam taka rzecz do zrobienia i niewiem jak się za to zabrać.

Są dwie daty np.:

2008-09-11 18:50
i
2008-09-11 19:21

Potrzebuje podpowiedzi jak spowodować żebym miał informacje ile minut / godzin / dni minęło między nimi.

Bardzo proszę o jakieś podpowiedzi jak się do tego zabrać !
Exek
ależ proszę, należy przeczytać odpowiedni (dotyczący dat i czasu) rozdział manuala php!
manipulator
Od tego zacząłem yahoo.gif

  1. <?php
  2. $data1 = "2008-09-11&nbsp:30";
  3. $data2 = "2008-09-11&nbsp:31";
  4. $roznica = (strtotime($data1) - strtotime($data2)) / (60*60*24);
  5. echo "Różnica między datami to: ".$roznica;
  6. ?>


Jednak to coś podaje mi liczbę po przecinku, niewiem jak mam dzielić żeby zrobić z tego dni, godziny i minuty.
Proszę o pomoc, może bardziej konstruktywną niż Exek wstydnis.gif
Exek
dzielenie całkowite + troche odejmowania? znaczek %

Edit:

Widzisz troszkę inaczej wygląda jak pokażesz, że coś napisałeś, że naprawdę myślałeś nad problemem, a inaczej jak "fiku-miku co robić?" winksmiley.jpg
bim2
  1. <?php
  2. $data1 = "2008-09-11&nbsp:30";
  3. $data2 = "2008-09-11&nbsp:31";
  4. $roznica = (strtotime($data1) - strtotime($data2));
  5. $min = ceil($roznica / 60);
  6. $sec = $roznica-($min*60);
  7. $h = ceil($min/60);
  8. $min = $min-($h*60);
  9. echo "Różnica między datami to: ".$h." godzin ".$min." minut ".$sec." sekund";
  10. ?>
manipulator
bim2 WIELKIE DZIĘKI

Zmodyfikowałem nieco skrypt, zerknijcie czy aby poprawnie to zrobiłem, bo nie jestem pewien:/

  1. <?php
  2. $data1 = "2008-09-18 1:10";
  3. $data2 = "2008-09-11 1:05";
  4. $roznica = (strtotime($data1) - strtotime($data2));
  5. $dni = ceil($roznica / 86400);
  6. $min = ceil($roznica / 60);
  7. $h = ceil($min/60);
  8. $min = $min-($h*60);
  9. $min = ($min*(-1));
  10. if ($h<'24') {
  11. echo "Czas reakcj: ".$h." godz. ".$min." min.";
  12. } else {
  13. $h = ($h-($dni*24));
  14. echo "Czas rekacj: ".$dni." dni ".$h." godz. ".$min." min.";
  15. }
  16.  
  17. // wyni: Czas rekacj: 8 dni -23 godz. 55 min.
  18. ?>



Przy minutach wywala czasami minus (-) z przodu ale ltrim powinno pomóc - tylko pytanie czy liczy dobrze blinksmiley.gif
bim2
Zamien wszedzie ceil na floor w moim skrypcie i bedzie działać. smile.gif A jak chcesz dni to:
  1. <?php
  2. $data1 = "2008-09-11&nbsp:30";
  3. $data2 = "2008-09-11&nbsp:31";
  4. $roznica = (strtotime($data1) - strtotime($data2));
  5. $min = floor($roznica / 60);
  6. $sec = $roznica-($min*60);
  7. $h = floor($min/60);
  8. $min = $min-($h*60);
  9. $dni = floor($h/24);
  10. $h = $h-($dni*24);
  11. echo 'Różnica między datami to: '.$dni.' dni '.$h.' godzin '.$min.' minut '.$sec.' sekund';
  12. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.