Domanda
Devo creare un timestamp da inserire in MySQL. L'utente sta inviando un numero (di settimane) che devo aggiungere molte settimane alla data odierna. Quello che sto cercando di fare è calcolare una data di fine di un annuncio che l'utente sta inviando.
Qualche suggerimento su come farlo? Grazie!
Altri suggerimenti
Penso che DATE_ADD (CURDATE (), INTERVAL 2 WEEK) aggiungerebbe 2 settimane alla data corrente, ad esempio
Se vuoi che l'annuncio scada a una certa ora del giorno puoi usare mktime:
$ day = date (" d ") + ($ settimane * 7);
mktime ($ all'ora, $ minuto, $ secondo, $ al mese, $ al giorno, $ l'anno);
Giusto per aggiungere, alcuni direbbero che archiviare l'ora UNIX come un semplice campo int nel database è la soluzione più flessibile e portatile. Inoltre, gli inserimenti e gli aggiornamenti avvengono più rapidamente perché comportano solo la memorizzazione di interi semplici. Dipende davvero da quanta manipolazione della data devi fare a livello di database. Tendo ad andare per la portabilità e fare tutti i miei calcoli della data in PHP. Per memorizzare il timestamp corrente, vorrei semplicemente inserire in una colonna intera l'output di:
strtotime('now');
o
time();
che entrambi restituiscono il timestamp corrente (unix). Successivamente il confronto delle date può essere fatto recuperando i timestamp dal database ed eseguendo semplici operazioni aritmetiche, banali come:
if($tsFromDb > strtotime('+28 days')) {
echo 'it is the future, zombies!';
}
Dipende davvero da cosa stai usando le date.