Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1

    Differenza tra ora del server ed ora del computer

    Spero di non sbagliare sezione, nel caso, chiedo scusa

    Ho installato il pacchetto XAMPP su MacOS X PPC Tiger e tutto é andato bene. Ho solo un problema quando "chiedo" l'ora al server, perché anziché riportare l'ora corretta (che sul computer é impostata correttamente), riporta un'ora sballata. Nello specifico, l'ora é indietro di due ore rispetto a quella del computer; i minuti sono corretti ma l'ora no..

    Ho controllato le impostazioni del sistema operativo e sembra tutto corretto, devo settare qualche parametro nel file php di Apache?

    per stampare la data uso questo comdando:

    Codice PHP:
    php echo date("G:i"); 

  2. #2
    Se è indietro di 2 ore, vuol dire che sta usando l'orario di Greenwich.

    Prova ad andare nel php.ini a controllare l'impostazione date.timezone devi impostarla a Europe/Rome
    La verita' è che... tu sei il debole, e io sono la tirannia degli uomini malvagi, ma ci sto provando ringo, ci sto provando con grandissima fatica a diventare il pastore..

  3. #3
    ok grazie!, controllo e ti dico

  4. #4
    Grazie, il problema era proprio quello, sotto mac, il date.timezone era settato su UTC e non su Europe/Rome

    Grazie ancora!

  5. #5
    Attenzione a fare questi giochini con le date...

    La data del php è una cosa, la data del server un'altra (tra l'altro c'è una data software e una hardware).

    Giocare con le date può portare grossi casini se non si tiene conto delle ripercussioni sull'intero sistema.

    Esempio stupido.
    Il server, in "questo istante", segna le 00.01.00 del 22 Agosto 2011 (ottenuta tramite "date" da shell).
    Php viene impostato con un orario corrispondente a 22.01.00 del 21 Agosto 2011 (tramite php.ini).
    Immaginiamo di avere un file che è stato creato alle 20.00.00 del 21 Agosto 2011 e questa data è quella che riporta un ls -l via shell.

    Ipotizziamo di dover calcolare quante ore prima di "questo istante" è stato creato il file, tramite php.
    Php troverà che la sua data è 22.01.00 21 Agosto 2011, il file invece ha data 20.00.00 21 Agosto 2011, quindi php trova che è stato creato 2 ore prima (circa, ovviamente).
    In realtà le ore di differenza sono 4 (server = ore 00 del 22, file = 20 del 21) e questo ovviamente può portare un po' di problemi.


  6. #6

    Ops, ho fatto un esempio non perfetto...filectime prende l'orario da php, non dal server, quindi si "autoaggiusta" e riporterebbe la differenza corretta, ma vabbeh il concetto è chiaro no?


  7. #7
    non ho ben capito.. il problema era che mi riportava un'ora errata e controllando l'installazione del pacchetto AAMP mi sono accorto, grazie al consiglio di @8matt5 che il date.timezone era errato, io non ho fatto altro che settare il datetime.zone corretto.. che deve essere Europe/Rome, come anche riportato nell'installazione di AAMP

  8. #8
    ma questo tipo di problemi posono verificarsi anche con il calcolo delle ore in un database? se fosse così, allora come faccio a sistemare o meglio settare l'ora corretta del mio server locale?

  9. #9
    Originariamente inviato da timberwolf
    ma questo tipo di problemi posono verificarsi anche con il calcolo delle ore in un database? se fosse così, allora come faccio a sistemare o meglio settare l'ora corretta del mio server locale?
    Ecco, questo è un tipico esempio dove ci si può trovare in difficoltà con gli orari settati a manina.
    Il server ha una sua data, il php ne ha un'altra (settata ad esempio col datetime.zone) e il server db un'altra ancora tramite il suo time zone.

    Come consiglio è meglio fare affidamento sull'orario impostato dal server e lasciare che i vari software utilizzino questo unico.

    Comunque, se il server è Linux o Unix si può settare la data tramite l'impostazione del corretto fuso nel file /etc/timezone, altrimenti a livello hardware agendo sul bios.


  10. #10
    Originariamente inviato da timberwolf
    non ho ben capito.. il problema era che mi riportava un'ora errata e controllando l'installazione del pacchetto AAMP mi sono accorto, grazie al consiglio di @8matt5 che il date.timezone era errato, io non ho fatto altro che settare il datetime.zone corretto.. che deve essere Europe/Rome, come anche riportato nell'installazione di AAMP
    In pratica, il comando date di php (e tutti gli altri che recuperano una data) si basa sull'orario del server.
    Se il server ha il fuso del Giappone, gli orari saranno tutti basati su quel fuso (tranne aggiustamenti fatti a mano via codice o via impostazioni come appunto il datetime.zone).
    Se il server è linux, è facile fare questo controllo.
    Prima fai, da shel
    codice:
    date
    e vedi cosa ti riporta.
    Poi esegui
    codice:
    php5 -r "echo date('D j M G.i.s T');"
    e vedrai che ti riporta lo stesso orario di prima (con qualche secondo ovvio di sfasamento)

    Poi cambi il datetime.zone nel file ini di php ed esegui
    codice:
    date
    e poi
    codice:
    php5 -r "echo date('D j M G.i.s T');"
    e vedrai che la seconda data è diversa (occhio che potrebbe essere necessario riavviare Apache per vedere la differenza)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.