Newsgroup: it.comp.www.php
Titolo: uno script particolare sulle date... chiedo aiuto ai più esperti

Ciao a tutti, vi chiedo cortesemente una dritta su uno script un po' 
particolare. Vi spiego cosa voglio ottenere.
Ho una sezione "eventi sportivi" nel mio sito, un piccolo box alla 
destra del layout in cui sono elencati rigo per rigo i prossimi tornei 
di calcetto. Voglio fare in modo che quando mancano -3 giorni ad uno di 
questi eventi a fianco al rigo interessato compaia un'icona lampeggiante 
che resta fino al giorno dell'evento.
Ecco, quello che vi chiedo è come fare affinchè lo script in php faccia 
il calcolo dei giorni?
Avevo pensato di convertire la data dell'evento -dopo averla letta dal 
dbase- in unixtimestamp, convertire anche la data attuale in 
unixtimestamp e fare un confronto. Avete idee migliori?
Qualcuno ha uno script o link da indicarmi?
Nel caso in cui lo script debba tenere l'icona per 3 giorni come posso fare?
Dovrei fare qualcosa tipo:
1- converti in unixtimestamp la data dell'evento
2- converti in unixtimestamp la data attuale
3- confrontale
4- se la differenza è minore di un certo valore (sempre in unix 
timestamp) vuol dire che mancano 3 giorni.
ecco, 3 giorni in unix timestamp a che valore numerico corrispondono?
Grazie a chiunque mi risponde.
Jim

 ecco, 3 giorni in unix timestamp a che valore numerico corrispondono?
Lo Unix timestamp è semplicemente un calcolo in secondi dal 1 gennaio
1970 (mi sembra). Quindi 3 giorni sono 259200 secondi se non erro.
La formula dovrebbe essere: 60 (secondi) * 60 (minuti) * 24 (ore) * 3
(giorni)
Enrico

 Qualcuno ha uno script o link da indicarmi?
[..]
potresti appoggiarti su un db..
comunque in php alcuni aiuti li trovi qui..
http://www.php-faq.org/HandlingDateAndTime
-- 
www.iuz-lab.info
 - 
www.php-faq.org

 giorno dell'evento.
Un po' OT:
Una soluzione alternativa potrebbe essere quella di creare un
alias per stabilire i tornei in scadenza direttamente nella
query con cui li estrai. Per esempio (il campo che contiene la
data sia di tipo DATE s si chiami `data`):
mysql> select * from tabella;
+----+--------+------------+
| id | torneo | data       |
+----+--------+------------+
|  1 | Nome 1 | 2007-07-29 |
|  2 | Nome 2 | 2007-07-31 |
|  3 | Nome 3 | 2007-07-30 |
|  4 | Nome 4 | 2007-08-01 |
|  5 | Nome 5 | 2007-08-02 |
|  6 | Nome 6 | 2007-08-03 |
|  7 | Nome 7 | 2007-08-04 |
|  8 | Nome 8 | 2007-08-05 |
+----+--------+------------+
8 rows in set (0.00 sec)
mysql> select *, if(adddate(data, interval -3 day) <
date_format(now(), "%Y-%m-%d"), "yes", "no") as in_scadenza from
tabella;
+----+--------+------------+-------------+
| id | evento | data       | in_scadenza |
+----+--------+------------+-------------+
|  1 | Nome 1 | 2007-07-29 | yes         |
|  2 | Nome 2 | 2007-07-31 | yes         |
|  3 | Nome 3 | 2007-07-30 | yes         |
|  4 | Nome 4 | 2007-08-01 | no          |
|  5 | Nome 5 | 2007-08-02 | no          |
|  6 | Nome 6 | 2007-08-03 | no          |
|  7 | Nome 7 | 2007-08-04 | no          |
|  8 | Nome 8 | 2007-08-05 | no          |
+----+--------+------------+-------------+
8 rows in set (0.00 sec)
In questo modo nel recordset hai l'alias `in_scadenza` che vale
'yes' per i tornei in scadenza e vale 'no' per gli altri. Nel
codice PHP basta un semplice
 if ($record_set['in_scadenza'] == 'yes') {
     // Aggiungo l'icona lampeggiante
 } else {
     ...
 }
Ho usato le funzioni MySQL adddate() e date_format(), ma ve ne
sono molte altre, a seconda della versione di MySQL, per la
gestione delle date. Vedi:
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html
HTH
Ciao.
-- 
Federico