Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Ile czasu upłynęło ?
Forum PHP.pl > Forum > Przedszkole
seba22
Witam,

Mam problem, którego nie przewidziałem i teraz nie wiem jak go rozwiązać...

W bazie danych zapisywałem w następujacym formacie dane :/
  1. <?php
  2. $aktualnadata=date("Y-m-d");
  3. $aktualnagodzina=date("H:i:s");
  4. ?>



No i teraz, muszę wyliczyć ile czasu upłynęło ! od czasu bierzącego, do czasu tego wpisu w bazie danych.

Nie mam pojęcia jak się za to zabrać.

Wiem że był parametr stringtotime, ale jak go odjąć od siebie ?

Bo popatrzcie przykłądowo chciał bym uzyskać taką informację:

Ostatni wpis dokonano: 12 godzin temu

Albo,
Ostatni wpis dokonano: 3 dni i 5 godzin 14 minut.



Ma ktoś jakiś pomyśł, jak to zrealizować na tych parametrach ?

Pozdrawiam
c3zi
  1. <?php
  2. // Przykładowo xx godzin ..
  3. $iDiff = ( time() - strtotime( $aktualnadata.' '.$aktualnagodzina ) ) * 3600;
  4. ?>


Możesz użyć mktime(). Pewnie da się to zrobić na wiele sposobów, wystarczy chcieć ..
kefirek
A może tak
  1. <?php
  2. $data = date("Y-m-d");
  3. $godzina = date("H:i:s");
  4.  
  5. list($rok, $dzien, $miesiac) = explode("-", $data);  
  6. list($godzina, $minuty, $sekundy) = explode(":", $godzina);
  7.  
  8. $czas = mktime($godzina, $minuty, $sekundy, $miesiac, $dzien, $rok);
  9. $minut = sprintf(floor($czas /60)%60);
  10. $sekund = sprintf(floor($czas)%60);
  11. $godzin = sprintf(floor($czas/(60*60)%24));
  12. $dni = sprintf(floor($czas/(60*60*24)));
  13.  
  14. echo "Dni $dni Godzin $godzin Minut $minut Sekund $sekund";
  15. ?>
seba22
Kefirek, twój kod mistrzu jest dobry, bardzo mi się podoba winksmiley.jpg

Powiedz, czyli koncepcja polega na przekonwerterowaniu czasu z bazy danych, z czasem oryginalnym i reczna analiza wyników.

Czy korzystając z strtotime przekonwerterować date z bazy, i odjąć ją od daty aktualnej, a następnie przekonwerterować przy uzyciu twojego algorytmu celem otrzymania porządanego wyniku ?

Pozdrawiam
kefirek
Cytat(seba22 @ 22.12.2008, 22:53:31 ) *
Kefirek, twój kod mistrzu jest dobry, bardzo mi się podoba winksmiley.jpg

Powiedz, czyli koncepcja polega na przekonwerterowaniu czasu z bazy danych, z czasem oryginalnym i reczna analiza wyników.

Czy korzystając z strtotime przekonwerterować date z bazy, i odjąć ją od daty aktualnej, a następnie przekonwerterować przy uzyciu twojego algorytmu celem otrzymania porządanego wyniku ?

Pozdrawiam


Można i tak za pomocą strtotime czyli
  1. <?php
  2. $czas = "2006-09-10 16:30:30";
  3. $znacznik = strtotime($czas);
  4.  
  5. $minut = sprintf(floor($znacznik /60)%60);
  6. $sekund = sprintf(floor($znacznik)%60);
  7. $godzin = sprintf(floor($znacznik/(60*60)%24));
  8. $dni = sprintf(floor($znacznik/(60*60*24)));
  9.  
  10. echo "Dni $dni Godzin $godzin Minut $minut Sekund $sekund";
  11. ?>
seba22
Oto działający kod, znalazłem go na forum.

  1. <?php
  2. $datap=("$data $czas");
  3.  
  4. $aktualnadata=date("Y-m-d");
  5. $aktualnagodzina=date("H:i:s");
  6. $czas=("$aktualnadata $aktualnagodzina");
  7.  
  8.  
  9. $time =  strtotime($czas) - strtotime($datap);
  10. $days = floor($time/86400);
  11. $time = $time%86400;
  12. $hours = floor($time/3600);
  13. $time = $time%3600;
  14. $minutes = floor($time/60);
  15. $seconds = $time%60;
  16. echo '<b>Do tego konca roku pozostalo
  17. ';
  18. echo 'Pozostało Dni: '.$days.', Godzin: '.$hours.', Minut: '.$minutes.', Sekund: '.$seconds.'';
  19. ?>
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.