Newsgroup: it.comp.www.php
Titolo: Ma che gli prende al datetime?!?!?

Scusa se mi aggancio al tuo thread senza darti risposta e con un 'leggero
OT', ma l'argomento è simile e sul NG preposto (JS) non ho avuto risposta.
Ecco la mia richiesta:
Ho inserito nella home page 
www.ardf.it
 lo script che segue, per indicare
l'ultimo aggiornamento della pagina. Lo script funziona sul mio PC, ma
quando gira sul server, anzichè indicare la data e l'ora dell'effettivo
aggiornamento della pagina, riporta la data e l'ora del momento in cui si
carica la pagina! Questo con IE... con NS, manco a dirlo, non si legge un
bel niente!
Avevo fatto un'altra prova in cui scrivevo i giorni, le ore, i minuti e i
secondi trascorsi dall'ultimo aggiornamento, ma in quel caso sulla pagina
apparivano i valori sempre uguale a zero (in locale funzionava!)
Se invece facevo scrivere semplicemente 'document.lastModified', appariva la
data giusta... ma il formato non mi piace affatto.
Dove sbaglio? Grazie per l'aiuto.
Ecco lo script:
<!--
modifica = new Date(document.lastModified);
oggi =new Date();
tempoinsecondi = Math.floor((oggi.getTime() - modifica.getTime()) / 1000)
//secondi trascorsi
tempoinminuti = Math.floor(tempoinsecondi / 60)
secondi = Math.floor(tempoinsecondi % 60)
tempoinore = Math.floor(tempoinminuti / 60)
minuti = Math.floor(tempoinminuti % 60)
giorni = Math.floor(tempoinore /24)
ore = Math.floor(tempoinore % 24)
if (giorni > 7) pic = ""
if (giorni <= 7) pic = '<img src="immagini/animated_new.gif">'
if (giorni == 0) pic = '<img src="immagini/anim_new.gif">'
modifica = document.lastModified
if (document.all){
 msg = modifica.substring(3,6)
 msg += modifica.substring(0,3)
 msg += modifica.substring(6,10)+'<br>'
 msg += modifica.substring(10,19)
}
else{
 msg = modifica.substring(16,18)+' '
 msg += modifica.substring(8,11)
 msg += modifica.substring(19,24)+'<br>'
 msg += modifica.substring(25,34)
}
document.write(msg+'<br>'+pic)
// -->
Sia che inserisca lo script nella pagina interessata, sia che lo richiami
con un link, il risultato è sempre lo stesso.
--
73 de IK2VTJ, Piero.
http://www.qsl.net/ik2vtj
http://www.ardf.it
Togli  /  Remove
NONVOGLIOSPAM
dall'indirizzo  /  from address

 ha scritto nel messaggio
news:9pmhd3$j2nnf$1...@ID-83989.news.dfncis.de...


  Chiaramente sospetto che dipenda tutto da quella schifezza di GMT...
Sara lui il colpevole...
Ma in realta' il strtotime che e' un po' sfigato...
Perche' non lo fai con dei semplici substr()? Se il tuo time e veramente ISO
le posizioni dei vari valori sono fissi.
$dataMoltaCarina = substr($dataCarina, 8,2). "/".substr($dataCarina, 5,2).
"/".substr($dataCarina, 2,2). ecc.
Se poi devi anche aggiustare il Localtime devi lavorare ancora un po'...
Jurgen

 sfigato mi adattero', amen.
Ehi, il PHP non e' sfigato, lo strtotime (ed i suoi utenti) invece si. :-P
Allora, se vai su 
www.php.net
 e leggi i commenti viene fuori che le versioni
4.0.5 e 4.0.6 hanno dei problemi con questa funzione.
Soluzioni diversi ci sono cmq. offerte...
altri modi possono essere di usare scanf (con parametro tipo "%d-%d-%d %d:%d
%d", $y,$m, $d, $h, $min, $gmt); e poi combini i valori come ti pare
(trasformando prima in Unix timestamp potresti anche calcolare il valore del
$gmt: $ut+=$gmt*3600; e dando questo valore in pasto a date();
:-)

 $gmt: $ut+=$gmt*3600; e dando questo valore in pasto a date();
sparato una ca***ta, scanf e 'C' (ho fatto un brutto transfer, senza
controllare)...

 wrote in message
news:FYVv7.40840$0Y2.3...@news.infostrada.it...


Devo smentirmi di nuovo, sotto php esiste e si chiama sscanf ...
Diventero' un politico!
:-)