View Full Version : PHP/SQL - Date
negator136
20-10-2006, 20:01
ciao a tutti
vorrei inserire in un database sql una data futura... la cella è di tito datetime.
per inserire la data attuale faccio una query che inserisce now() nella cella, ma se volessi inserire una data futura? ad esempio ritardata di 2 mesi rispetto al momento dell'inserimento, come potrei fare?
e possibile fare un confronto tra due date e vedere quale viene prima?
il tutto senza ricorrere alla funzione time, bensì sfruttando due celle di tipo datetime...
grazie :)
Kappaloris
20-10-2006, 22:26
ciao a tutti
vorrei inserire in un database sql una data futura... la cella è di tito datetime.
per inserire la data attuale faccio una query che inserisce now() nella cella, ma se volessi inserire una data futura? ad esempio ritardata di 2 mesi rispetto al momento dell'inserimento, come potrei fare?
e possibile fare un confronto tra due date e vedere quale viene prima?
il tutto senza ricorrere alla funzione time, bensì sfruttando due celle di tipo datetime...
grazie :)
semplice:
$data_attuale = time();
$data_futura = $data_attuale + 60 (dove 60 è il numero di secondi che vuoi aggiungere.)
time() restituisce una datestamp stile unix, cioè la data espressa in secondi rispetto all'anno 0 dei pc :D (dal 1/1/1970 se non sbaglio).
Quindi , sommandoci un numero determinado di secondi ottieni date future
(60^2)*24 sono 24 ore
(60^2)*24*31 è un mese di 31 giorni.
e via andare.
Per il confronto, quindi, ti basta fare un if
if ($data1 > $data2){
se data1 è il minore (cioè data due è una data futura rispetto a data1)
}
else {
l'opposto
}
infine con date() puoi convertire la data in un formato normale.
:)
--
ho letto meglio ed ho vsto che volevi usare le celle datetime, in quel caso non so aiutarti.
Io mi sono accorto che alla finfine conviene fare come detto sopra, + comodo, e, a meno che non gestisci un db mostruoso, non cambia nulla.
negator136
21-10-2006, 09:25
semplice:
$data_attuale = time();
$data_futura = $data_attuale + 60 (dove 60 è il numero di secondi che vuoi aggiungere.)
time() restituisce una datestamp stile unix, cioè la data espressa in secondi rispetto all'anno 0 dei pc :D (dal 1/1/1970 se non sbaglio).
Quindi , sommandoci un numero determinado di secondi ottieni date future
(60^2)*24 sono 24 ore
(60^2)*24*31 è un mese di 31 giorni.
e via andare.
Per il confronto, quindi, ti basta fare un if
if ($data1 > $data2){
se data1 è il minore (cioè data due è una data futura rispetto a data1)
}
else {
l'opposto
}
infine con date() puoi convertire la data in un formato normale.
:)
--
ho letto meglio ed ho vsto che volevi usare le celle datetime, in quel caso non so aiutarti.
Io mi sono accorto che alla finfine conviene fare come detto sopra, + comodo, e, a meno che non gestisci un db mostruoso, non cambia nulla.
ti ringrazio :)
alla fine penso che userò il metodo che mi hai consigliato tu... mi pare il più semplice... quindi basta che salvo la variabile in una cella int? di che dimensione?
già che ci sono, vi pongo un'altra domanda... per copiare una riga da una tabella ad un altra esiste qualche comando particolare, oppure devo prendere la riga dalla prima tabella, copiarla, inserirla nella seconda ed eliminarla dalla prima?
grazie :D
Kappaloris
21-10-2006, 12:26
ti ringrazio :)
alla fine penso che userò il metodo che mi hai consigliato tu... mi pare il più semplice... quindi basta che salvo la variabile in una cella int? di che dimensione?
già che ci sono, vi pongo un'altra domanda... per copiare una riga da una tabella ad un altra esiste qualche comando particolare, oppure devo prendere la riga dalla prima tabella, copiarla, inserirla nella seconda ed eliminarla dalla prima?
grazie :D
beh, la data odierna (non mi ricordo l'ora) è 1161429163.
un int basta ed avanza.
che io sappia il metodo è quello che dici tu. altri non ne conosco.
:)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.