Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Problem z odejmowaniem dat
karolusgt
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 24.08.2008

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


Witam. Próbowałem stworzyć skrypt, który byłby w stanie pobrać datę ostatniej wiadomości w aktualnościach oraz datę bieżącą. Z tym problemu nie ma (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Problem pojawia się, gdy chcę te daty odjąć od siebie. Generalnie chodzi o to, żeby w menu na stronie przy zakładce "aktualności" pojawiał się jakiś tam znaczek, sygnalizujący że ostatnio coś nowego pojawiło się w aktualnościach. Przykładowo w ciągu 3 dni od ostatniego wpisu w menu przy aktualnościach widniałby jakiś "!", a po upływie 3 dni zniknąłby automatycznie do czasu wprowadzenia nowej wiadomości. Sam algorytm jest chyba prosty, jednak brak mi wiedzy z zakresu php, żeby przeskoczyć odejmowanie dat. Może jakaś mądra duszyczka będzie znała rozwiązanie. Próbowałem też z strtotime ale wychodziły cuda (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Poniżej moje dotychczasowe (skromne) wypociny. Z góry dzięki za pomoc!!!!

<?php

&connection = mysql_connect("xxx", "xxx", "xxx")
or die ("Nie można połączyć się z serwerem");
&db = mysql_select_db("xxx", $connection)
or die ("Nie można wybrać bazy danych");
&query1 = "SELECT max(data) as data FROM komunikaty";
&result = mysql_query(&query1)
or die("Wykonanie zapytania nie powiodło się: ".mysql_error());

while (&row = mysql_fetch_array(&result))
{

&komunikat = &row['data']; /* data wprowadzenia komunikatu*/
&teraz = date('d-m-Y'); /* data obecna*/

if(&teraz-&komunikat <=3) /* czy komunikat jest młodszy/równy niż 3 dni */
{ /* jeśli komunikat jest młodszy/równy niż 3 dni */
/* czyli wyświetl nazwę zakładki z gifem*/
} else { /* w innym przypadku */
/* wyświetl zakładkę bez "!" */
}
}
mysql_close($connection);
?>

PS: Wybaczcie mały chaos w kodzie

Ten post edytował karolusgt 20.11.2008, 23:24:45
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ddiceman
post
Post #2





Grupa: Zarejestrowani
Postów: 326
Pomógł: 121
Dołączył: 23.07.2008
Skąd: Wrocław

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


przekonweruj na unix_timestamp, i dopeiro odejmuj od siebie - roznica to ilosc sekund dzielacych daty. Doba ma 24*60*60 sekund, wiec
  1. <?php
  2. if(   time() - strtotime($pobrana_data_z_bazy) > 3*24*60*60   ){ echo 'data starsza niz 3 dni od teraz'; }
  3.    else{ echo 'data nie jest starsza niz 3 dni od teraz'; }
  4. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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: 10.10.2025 - 11:03