- Home
- Categorie
- Coding e Sistemistica
- Coding
- Sommare secondi ad un datetime
-
Sommare secondi ad un datetime
Ho il mio datetime cosi: "2006/06/06 17:53:01"
e vorrei sommare i secondi ....se faccio "2006/06/06 17:53:01" + 2 per esemio, mi ritorna "2006/06/06 17:53:12" !!!!
come posso fare?
-
@jeangr said:
Ho il mio datetime cosi: "2006/06/06 17:53:01"
e vorrei sommare i secondi ....se faccio "2006/06/06 17:53:01" + 2 per esemio, mi ritorna "2006/06/06 17:53:12" !!!!
come posso fare?
Come tratti la data? se usi il timestamp, ti basta il + 2.Se la tratti come testo è impossibile pensare che "2006/06/06 17:53:01" + 2 funzioni...
Comunque sia, nel database è sempre meglio tenere la data con il timestamp, molto versatile. Quindi... Se proprio devi fare in quel modo...
preg_match("#^(.+):(.+)$#", $data, $result); // cerco i secondi preg_replace("#^(.+):(.+)$#", "#$1:".$result[2][0]."#", $data);
Scritto on-the-fly quindi probabilmente non funge... Vedi un pò tu
-
e per sommare giorni ad un date? Avete qualche script sottomano?
-
Ciao Tuono,
il timestamp è un numero fatto di secondi quindi se vuoi aggiungere un minuto aggiungi nMinuti * 60;
per le ore nOre * 60 * 60
per i giorni nGiorni * 60 * 60 * 24
e via dicendomaggiori info:
[url=http://it.php.net/manual/it/function.time.php]PHP: time - Manualbuon divertimento
-
non parlavo di timestamp
ma di campo date fatto tipo 2006-07-19
Un algoritmo che somma 87 giorni e mi restituisce la data ce l'avete sottomano? Altrimenti mi metto a scriverlo
-
io alla fine ho fatto così
select nome_campo_datetime + interval 2 second from tabella
dove 2 sono i secondi che volevo sommare alla mia datatime....
inolte fa i calcoli giusti,nel senso che se sommo 99999999 secondi mi va avanti con gli anni e tutto il resto!
-
Ecco come aggiungere giorni XXX ad una data testuale
e ritornare ancora una data testuale...[php]
$data="01/01/1979"; // Metto formato europeo, ma il procedimento è lo stesso...
list($giorno,$mese,$anno)=explode("/",$data); // ... ovviamente qui cambi...$time_nuovo=mktime(0,0,0,$mese,$giorno+XXX,$anno);
$data_nuova=date("d/m/Y",$time nuovo); //.. e anche qui
[/php]Al volo ma dovrebbe fungere
-
quindi non devi fare il lavoro con php ma in una select? non riesco a capire quello che ti serve.
in ogni caso se il db è mysql (con gli altri è da provare) esiste questa funzione:
DATE_ADD(date,INTERVAL expr unit), DATE_SUB(date,INTERVAL expr unit)
per maggiori info:
[url=http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html]MySQL 5.0 Reference Manual :: 12.5 Date and Time Functions
-
Ciao Tymba,
faccio prima a spiegarti quello che devo fare così magari mi dai anche qualche consiglio.In sostanza devo gestire degli appuntamenti periodici.
L'utente mi dice il giorno 20/07/2006 e ogni 15 giorni.
Poi esiste una ricerca per data, e se uno mi ricerca gli appuntamenti del giorno 19/08/2006 mi deve uscire quell'appuntamento.Come gestiresti la cosa? Io in fase di input per ora salvo la data e ogni quanti giorni si ripete.
Ciao!