Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]odejmowanie dat
Forum PHP.pl > Forum > Przedszkole
lucas666
moze mi ktos pomoc?questionmark.gif mam taki kod do odejmowania dat, ale jesli data minela, to pokazuje ile czasu minelo, a przeciez dalem warunek...

wie ktos o co tu chodzi?

  1. $target = mktime($g1, $min1, $s1, $m1, $d1, $y1);
  2. $today = time() ;
  3. $difference = ($target-$today) ;
  4.  
  5. if ($difference<0) {
  6. $czas= 'zakończono';
  7. $knc= '-';
  8. }
  9.  
  10. else {
  11. $czas =(int) ($difference / 3600);
  12.  
  13. if ($czas > 24) {
  14. $czas =(int) ($difference / 86400);
  15. $knc= 'dni';
  16. if ($czas == 1) {
  17. $knc = 'dzień';
  18. }
  19. }
  20. else {
  21. $knc = 'godz.';
  22. }
  23.  
  24. }
IProSoft
Co dajesz w zmiennych: $g1, $min1, $s1, $m1, $d1, $y1 ?
lucas666
Cytat(IProSoft @ 31.05.2012, 14:22:40 ) *
Co dajesz w zmiennych: $g1, $min1, $s1, $m1, $d1, $y1 ?


  1. $y1 = substr($data, 0, 4);
  2. $m1 = substr($data, 5, 2);
  3. $d1 = substr($data, 8, 2);
  4. $g1 = substr($data, 11, 2);
  5. $min1 = substr($data, 14, 2);
  6. $s1 = substr($data, 14, 2);


a zmienna $data jest pobierana z bazy.

rocktech.pl
Witam.

Trochę bardziej przyjazny kod:

  1. $target = new DateTime('2012-05-29');
  2. $today = new DateTime( );
  3. $difference = $today->diff($target);
  4. echo $difference->format('%Y lat %m miesięcy %d dni %h godzin i %s sekund');


Pokombinuj z przykładami datetime.diff.php.
Sephirus
Zapoznaj się z obiektami DateTime i DateInterval.

Można to zrobić o wiele łatwiej:

  1. $date = '2012-06-01 23:59:59';
  2. $date = new DateTime($date);
  3. if($date < new DateTime()) {
  4. echo 'minęło';
  5. } else {
  6. $interval = $date->diff(new DateTime(),true);
  7. echo $interval->format('Odbędzie się za %y lat %m miesięcy %d dni %h godzin %i minut i %s sekund.');
  8. }


EDIT: @rocktech.pl - ubiegłeś mnie tongue.gif
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.