Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Ile czasu upłynęło ?
seba22
post
Post #1





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
c3zi
post
Post #2





Grupa: Zarejestrowani
Postów: 266
Pomógł: 20
Dołączył: 15.11.2006
Skąd: Koszalin

Ostrzeżenie: (0%)
-----


  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ć ..


--------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Go to the top of the page
+Quote Post
kefirek
post
Post #3





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował kefirek 22.12.2008, 21:59:19
Go to the top of the page
+Quote Post
seba22
post
Post #4





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post
kefirek
post
Post #5





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
seba22
post
Post #6





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował seba22 23.12.2008, 11:14:17


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 10:40