Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]odejmowanie dat
lucas666
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 12.07.2010

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


moze mi ktos pomoc?(IMG:style_emoticons/default/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. }


Ten post edytował lucas666 31.05.2012, 12:38:16
Go to the top of the page
+Quote Post
IProSoft
post
Post #2





Grupa: Zarejestrowani
Postów: 479
Pomógł: 97
Dołączył: 6.09.2011
Skąd: php.net :)

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


Co dajesz w zmiennych: $g1, $min1, $s1, $m1, $d1, $y1 ?
Go to the top of the page
+Quote Post
lucas666
post
Post #3





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 12.07.2010

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


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.

Go to the top of the page
+Quote Post
rocktech.pl
post
Post #4





Grupa: Zarejestrowani
Postów: 587
Pomógł: 131
Dołączył: 8.02.2010

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


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





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


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 (IMG:style_emoticons/default/tongue.gif)

Ten post edytował Sephirus 31.05.2012, 13:56:18
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 13:09