Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Limit czasu
rotpl
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 25.09.2005

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


Problem: wyświetlanie newsów z ostatnich 7/30/60 dni etc.

Kod printowania newsów (żeby było wyraźniej - newsy nowsze niż minuta):

  1. <?
  2. $d = date("d");
  3. $m = date("m");
  4. $r = date("Y");
  5. $date = mktime(0,0,0, $d, $m, $r);
  6. $limit = $date - 60;
  7. $wynik = mysql_query("SELECT * FROM news WHERE (date >= $date) ORDER BY id DESC", $lacz);
  8.  
  9. while($r = mysql_fetch_array($wynik)) { 
  10.  
  11. echo($r['autor']." @ ".$r['date']."<br>".$r['txt']);
  12.  
  13. }
  14. ?>


No i niby wszystko fajnie. Tylko gdy dodaję newsa, to kiedykolwiek go dodam, mktime obliczone z czasu teraźniejszego jest równe 1127620800.

Kod dodawania newsa:

  1. <?
  2. $d = date("d");
  3. $m = date("m");
  4. $r = date("Y");
  5. $autor = mysql_real_escape_string($_POST['autor']);
  6. $date = mysql_real_escape_string(mktime(0,0,0, $d, $m, $r));
  7. $txt = mysql_real_escape_string($_POST['txt']);
  8.  
  9. $wynik = mysql_query("INSERT INTO news VALUES (0, '$autor', '$date', '$txt')", $lacz);
  10.  
  11. ?>


Czy złe działanie date() może zależeć od serwera? (mam konto na www.dhost.info) Czy po prostu coś źle w kodzie? Albo czy można to jakoś inaczej załatwić?

Z góry dzięki.
Go to the top of the page
+Quote Post
sf
post
Post #2





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

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


masz blad w mktime .. zle miesiac umiejscowiony.. pierwszy blad jaki rzucil mi sie w oczy
Go to the top of the page
+Quote Post
treewood
post
Post #3





Grupa: Zarejestrowani
Postów: 215
Pomógł: 0
Dołączył: 18.01.2003

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


rotpl - a nie lepiej zamienic mktime( ) na time( ) ? nie wrzucasz niczego a masz od razu timestamp'a
Go to the top of the page
+Quote Post
rotpl
post
Post #4





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 25.09.2005

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


Thankz, zapomniałem o time(). I zrozumiałem błąd. W mktime() podałem 0 sekund, każde mktime() z tego dnia podawało tą samą wartość, więc nie mogło podać o 60 sekund nowszej. ;-) thx i close topic ;-)
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 - 06:28