Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sprawdzanie ile dni pozostało do...
LamaMASTER
post
Post #1





Grupa: Zarejestrowani
Postów: 160
Pomógł: 0
Dołączył: 27.03.2006

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


Witam,
Potrzebuję sprawdzić ile dni pozostało od dziś do danego okresu. Pobieram z bazy datę w formacie:
rrrr-mm-dd
i muszę porównać ją z funkcją nowd(), która generuje na podstawie funkcji date datę rrrr-mm-dd.
W tym celu mam zrobiony kod:
[php][/php]
Jednak w rezultacie mam coś typu:
-732424 dni
Co jest nie tak?

Ten post edytował LamaMASTER 17.07.2006, 23:41:45
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
chomiczek
post
Post #2





Grupa: Zarejestrowani
Postów: 271
Pomógł: 4
Dołączył: 5.01.2005

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


zamień obie daty na time() odejmij jedna od drugiej a potem wylicz sobie z różnicy ilość dni.
Go to the top of the page
+Quote Post
LamaMASTER
post
Post #3





Grupa: Zarejestrowani
Postów: 160
Pomógł: 0
Dołączył: 27.03.2006

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


Mogę prosić o przykład jak to zamienić na time()? Bo z tego co wiem to ta funkcja pokazuje czas, a czy jak dam time(data) to będzie wporządku? Z resztą to bym i sobie już może poradził (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
chomiczek
post
Post #4





Grupa: Zarejestrowani
Postów: 271
Pomógł: 4
Dołączył: 5.01.2005

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


Wiesz no trochę mnie rozwaliłeś.. sądze, ze dobry przykład zastosowania i składni funkcji time()" title="Zobacz w manualu php" target="_manual
Go to the top of the page
+Quote Post
LamaMASTER
post
Post #5





Grupa: Zarejestrowani
Postów: 160
Pomógł: 0
Dołączył: 27.03.2006

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


Źle się chyba zrozumieliśmy. Chodziło mi o to jak zamienić odstęp między tymi dwoma datami na czas taki jaki generuje funkcja time(), dzięki któremu będzie można ustalić potem ilość dni (podzielić przez 24 godziny z tego co mi wiadomo).
Go to the top of the page
+Quote Post
chomiczek
post
Post #6





Grupa: Zarejestrowani
Postów: 271
Pomógł: 4
Dołączył: 5.01.2005

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


sugeruje jednak kliknięcie w link, który Ci podałem.. przyda Ci sie jeszcze date" title="Zobacz w manualu php" target="_manual
a róznica jaka powstanie to róznica w sekundach
Go to the top of the page
+Quote Post
LamaMASTER
post
Post #7





Grupa: Zarejestrowani
Postów: 160
Pomógł: 0
Dołączył: 27.03.2006

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


Funkcję time znam, date przecież też (sam mówiłem o nowd()). Time w sekundach - wiadomo. Powiedz mi to, czego jeszcze nie wiem, czyli jak to sobie od strony technicznej wyobrażasz.
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




moze to pomoze bo nie wiem oco taka sprawa:
http://forum.php.pl/index.php?showtopic=29075&hl=liczba+dni
Go to the top of the page
+Quote Post
LamaMASTER
post
Post #9





Grupa: Zarejestrowani
Postów: 160
Pomógł: 0
Dołączył: 27.03.2006

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


Fajny temat, dzięki!

Ten post edytował LamaMASTER 17.07.2006, 23:41:32
Go to the top of the page
+Quote Post
mokry
post
Post #10





Grupa: Zarejestrowani
Postów: 374
Pomógł: 23
Dołączył: 3.06.2006
Skąd: Katowice

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


Myśle, że powinno pomóc. Mam tak u siebie w panelu dla klientów:
  1. <?php
  2. echo "  <td rowspan="2" scope="col">";
  3. $data = $row['datado'];
  4. $data = explode(" ", $data);
  5. $data = explode("-", $data[0]);
  6. $dokonca = mktime(0,0,0,$data[1],$data[2],$data[0]) - mktime(date("H"),
  7. date("i"), date("s"), date("m"),
  8. date("d"), date("Y"));
  9. if($dokonca/(60*60*24) < 0) {
  10. print "<font color="red">Minąl termin trwania uslugi.</font>";
  11. }
  12. else {
  13. print "<font color="#008000">Zostalo ".floor($dokonca/(60*60*24))." dni.</font>";
  14. }
  15.  
  16. echo "</td>
  17. ?>



$row['datado'] to zmienna z bay danych (kolumna "datado" z data w formacie rrrr-mm-dd

Ten post edytował mokry 19.07.2006, 17:23:06
Go to the top of the page
+Quote Post
Nigger
post
Post #11





Grupa: Zarejestrowani
Postów: 30
Pomógł: 1
Dołączył: 14.07.2005

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


Mokry, a co jak data nie będzie z przedziału 1970-2038 ?
Trzeba mysql. Przeliczyć na czas uniksowy 2 daty, potem odjać i podzielic przez 60*60*24 i masz liczbe dni ...
Go to the top of the page
+Quote Post
mokry
post
Post #12





Grupa: Zarejestrowani
Postów: 374
Pomógł: 23
Dołączył: 3.06.2006
Skąd: Katowice

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


Jeśli chodzi o mnie jak z reszta i chyba o wiele osób to mi nie potrzeba 2038roku, bo zapewne wtedy beda juz calkiem inne techniki, a php prawdopodobnie pojdzie w zapomnienie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Osobiście ja go używam na rok, do pięciu do przodu dla usług hostingowych, domen i innych świadczonych...
Go to the top of the page
+Quote Post
LamaMASTER
post
Post #13





Grupa: Zarejestrowani
Postów: 160
Pomógł: 0
Dołączył: 27.03.2006

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


Dzięki za starania. Jednak ta funkcja nospora wystarczyła zupełnie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
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 - 20:27