Newsgroup: it.comp.www.php
Titolo: Data e ora... misteri

Prima di tutto un saluto a tutto il NG e poi, be', ho proprio bisogno di un
aiutino.
Ho creato uno script per incrementare una data (comprensiva di ora nel
formato xx-xx-xx xx:xx:xx) gia' formattata.
Purtroppo ho avuto un grosso problema nel senso che tra tutte le date ...
be', il 30/03/03 01:45:00 incrementato di 15 minuti diventa 30/03/03
01:00:00
mentre negli altri casi funziona benissimo. Non e' che e' colpa dell'ora
legale ?
Il codice e' il seguente... $data e' l'ora raccolta da un file e $data_inc
e' l'ora incrementata. Ho modificato lo scritp giusto per postarlo...
Un ringraziamento a tutti quelli che mi aiuteranno.
Totem
<?php
$data = '30/03/03 01:45:00';
$_ora = $data;
  $yr = substr($_ora,6,2);
  $mon = substr($_ora,3,2);
  $day = substr($_ora,0,2);
  $hr = substr($_ora,9,2);
  $min = substr($_ora,12,2);
  $sec = substr($_ora,15,2);
  $min=$min+15;
  $_tmp = date("d/m/y H:i:s",mktime($hr,$min,$sec,$mon,$day,$yr));
$data_inc = $_tmp;
?>

 legale ?
Sicuramente!

> Sicuramente!
Coma faccio a toglierlo ??!!?
Il software che ho fatto non deve assolutamente calcolare in modo autonomo
l'ora legale/solare :(

Bellissimo raga... ho modificato lo script nel seguente modo:
$_tmp = date("d/m/y H:i:s",mktime($hr,$min,$sec,$mon,$day,$yr)+15*60);
Naturalmente lo script aggiunge i 15 minuti esattamente come lo script di
prima.
Pero' la data 30/03/03 01:45:00 incrementata di 15 minuti diventa...
30/03/03 01:45:00
30/03/03 03:00:00
A questo punto il sospetto che sia il calcolo dell'ora legale diventa
concreto. Ma il problema mio e' che non ho bisogno di calcolare l'ora
legale.
Anche perche' trasmetto dati verso dispositivi che non hanno questo tipo di
controllo e se io mi metto a fare i conti in ora legale/solare e loro no...
diventa un bel casino !!!!

 ha scritto nel messaggio
news:b695df$34h$1...@newsfeed.cineca.it...

mktime($hr,$min,$sec,$mon,$day,$yr,0)
o 0 o 1 non ricordo a seconda di quello che metti tiene o meno conto
dell'ora legale.

 ha scritto nel messaggio
news:IFhia.3200$mg5....@twister2.libero.it...

ma poi scusa perke fai tutti quei casini? perke non usi strotime?
strotime('il dato che hai in database in formato datetime')
e ti ritorna il numero di secondi dal 1-1-1970
sbaglio?
ciao

 dell'ora legale.
partendo dalla data 30/03/03 01:45:00 e aggiungendo 15 minuti:
Se metto 0 > 30/03/03 03:00:00
Se metto 1 > 30/03/03 01:00:00
HARG

 ciao
Non sbagli. In effetti il codice si riduce parecchio (purtroppo non avevo
mai visto nessuno utilizzare tale funzione e dalla fretta non mi sono
informato piu' di tanto. Semplicemente avevo fatto nel modo che conoscevo
senza stare a cercare...)
Il codice si riduce a:
$_data = '2003-03-30 01:45:00';
$_data_sec = strtotime($_data) + 15*60;
$_tmp = strftime("%Y/%m/%d %H:%M:%S", $_data_sec);
$data_inc = $_tmp;
Purtroppo il risultato e' esattamente lo stesso:
2003-03-30 01:45:00
2003/03/30 03:00:00
siiigh

 $data_inc = $_tmp;
ciao

> proprio non saprei...hai provato con date?
Si comportano tutti nello stesso modo. Le ho provate veramente tutte. Mi
rimane di scrivermi un paio di function a mano per il calcolo della data. E
adesso mi diverto...
P.s.: oppure mi rivolgo a lourdes...
P.p.s.: ma non e' che su macchine unix/linux si comporta diversamente ? Non
vorrei che fosse un problema di winzozz. Mi pare di aver letto che il
conteggio della data si basa sulle impostazioni del SO. Potrebbe essere vero
? O magari lavoro troppo ?