Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - Problema ora non corretta, funzione date
Forum - PHP - Problema ora non corretta, funzione date

Avatar
domenico_rizzo (Normal User)
Pro


Messaggi: 90
Iscritto: 27/07/2015

Segnala al moderatore
Postato alle 18:50
Lunedì, 24/04/2017
Ciao a tutti attraverso questa funzione semplicissima:
Codice sorgente - presumibilmente Plain Text

  1. echo date("Y-m-d H:i:s");


mi stampa un'ora che risulta indietro di 2 ore... Come mai? :_doubt:

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 18:54
Lunedì, 24/04/2017
Chissà dov'è il server...
Imposta il fuso orario di Roma prima di richiamare una funzione legata all'orario.
Codice sorgente - presumibilmente Plain Text

  1. date_default_timezone_set('Europe/Rome');


PM Quote
Avatar
domenico_rizzo (Normal User)
Pro


Messaggi: 90
Iscritto: 27/07/2015

Segnala al moderatore
Postato alle 19:40
Lunedì, 24/04/2017
E se io volessi trovare quello dell' utente?
Facciamo conto che riesco ad ottenere il fuso orario del client con questa funzione js:
Codice sorgente - presumibilmente Plain Text

  1. (new Date()).getTimezoneOffset();


e riesca a passarla tramite get o post, come faccio a modificare una date di php aggiungendo o sottraendo questo valore (/60)?

p.s. Infatti il fuso orario dell 'italia e' -120, ho diviso questo valore per -60 e quindi ho ottenuto un +2 da aggiungere alla date di oggi e vorrei capire se ci sta un modo

Ultima modifica effettuata da domenico_rizzo il 24/04/2017 alle 19:41
PM Quote
Avatar
domenico_rizzo (Normal User)
Pro


Messaggi: 90
Iscritto: 27/07/2015

Segnala al moderatore
Postato alle 19:50
Lunedì, 24/04/2017
Testo quotato

Postato originariamente da domenico_rizzo:

E se io volessi trovare quello dell' utente?
Facciamo conto che riesco ad ottenere il fuso orario del client con questa funzione js:
Codice sorgente - presumibilmente Plain Text

  1. (new Date()).getTimezoneOffset();


e riesca a passarla tramite get o post, come faccio a modificare una date di php aggiungendo o sottraendo questo valore (/60)?

p.s. Infatti il fuso orario dell 'italia e' -120, ho diviso questo valore per -60 e quindi ho ottenuto un +2 da aggiungere alla date di oggi e vorrei capire se ci sta un modo



Ho risolto in questo modo:
Avendo a disposizione un input hidden settato a value vuoto, attraverso l evento onsubmit del forum vado a settare il suo value con il valore dell timezoneoffset.
Successivamente controllo attraverso php che non sia vuoto l'input hidden, e in questo caso utilizzo questa procedura per sistemare l' orario:
Codice sorgente - presumibilmente Plain Text

  1. $h = - ( intval($_POST["gmt"]) / 60 );
  2. $str = ($h > 0) ? "+".$h." hours" : $h." hours";
  3. $data = date( "Y-m-d H:i:s", strtotime($str) );


Ultima modifica effettuata da domenico_rizzo il 24/04/2017 alle 19:51
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 4:13
Martedì, 25/04/2017
Gestisci tutto in UTC (sul server e sul client), dopodiche' converti in GMT solo prima della visualizzazione.


Il mio blog: https://piero.dev
PM Quote
Avatar
domenico_rizzo (Normal User)
Pro


Messaggi: 90
Iscritto: 27/07/2015

Segnala al moderatore
Postato alle 12:47
Martedì, 25/04/2017
Ah ok perfetto :k:

PM Quote