Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] dni do końca roku, skrypt nie pokazuje prawidłowo
@rtur
post 8.05.2011, 10:30:17
Post #1





Grupa: Zarejestrowani
Postów: 254
Pomógł: 3
Dołączył: 23.02.2006

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


Witam mam taki prosty sktypt który ma mi obliczać ile dni do końca roku zostało:
  1. $data_do=date('Y').'-12-31';
  2. $dzis_jest=date('Y-m-d');
  3. $pozostalo = (strtotime($data_do) - strtotime($dzis_jest)) /86400;
  4. echo 'do końca roku pozostało '.$pozostalo.' dni.';


tylko nie mam pojęcia czemu ten skrypt mi pokazuje że zostało 237.04166666667 dni a nie 238?

Mógłbym prosić o naprowadzenie mnie co jest nie tak?


--------------------
Artur
Go to the top of the page
+Quote Post
Ilware
post 8.05.2011, 10:35:18
Post #2





Grupa: Zarejestrowani
Postów: 248
Pomógł: 31
Dołączył: 14.12.2010
Skąd: Wrocław

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


a nie łatwiej skorzystać z opcji "z" dla date?podaje dzień roku.Odejmujesz tą wartość od 365 i masz wynik, z opcji "L" wyciągnij czy rok jest przestępny i całość załatwiona smile.gif


--------------------
Jeżeli pomogłem kliknij "Pomógł" :)
Go to the top of the page
+Quote Post
lobopol
post 8.05.2011, 10:36:30
Post #3





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

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


Wynik dzielenia nie jest w tym wypadku liczbą całkowitą i tyle. Użyj ceil na wyniku


--------------------
Go to the top of the page
+Quote Post
@rtur
post 8.05.2011, 10:59:10
Post #4





Grupa: Zarejestrowani
Postów: 254
Pomógł: 3
Dołączył: 23.02.2006

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


Cytat(Ilware @ 8.05.2011, 10:35:18 ) *
a nie łatwiej skorzystać z opcji "z" dla date?podaje dzień roku.Odejmujesz tą wartość od 365 i masz wynik, z opcji "L" wyciągnij czy rok jest przestępny i całość załatwiona smile.gif

Coś takiego?
  1. if(date('L')) {$dni='366';} else{$dni='365';}
  2. $dzienroku = date('z');
  3. $pozostalo = $dni-$dzienroku;
  4. echo 'do końca roku pozostało '.$pozostalo.' dni.'

Pisane na szybko z pamięci.


--------------------
Artur
Go to the top of the page
+Quote Post
tolomei
post 8.05.2011, 11:19:06
Post #5





Grupa: Zarejestrowani
Postów: 450
Pomógł: 135
Dołączył: 18.11.2010
Skąd: Wschowa

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


Można także polecieć po znaczniku unixa w ten sposób:

  1. $dzis = mktime(0,0,0,date('n'),date('j'),date('Y'));
  2. $nowy_rok = mktime(0,0,0,1,1,(date('Y')+1));
  3. $ile_dni = ($dzis - $nowy_rok) / 86400;
  4.  
  5. echo 'Do nowego roku pozostało '.$ile_dni.' dni :)';


Ile osób tyle sposobów smile.gif

Ten post edytował tolomei 8.05.2011, 11:23:14


--------------------
“ Computers are good at following instructions, but not at reading your mind. ”
- Donald Knuth
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 Wersja Lo-Fi Aktualny czas: 26.04.2025 - 04:00