Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Problema Fuso Orario

  1. #1

    Problema Fuso Orario

    Salve..
    Non sono mai riuscito a venire a capo da questo problema..
    In pratica PHP mi da sempre l'orario sballato di un'ora indietro..
    Ho cambiato l'orario del server, che dando il comando date da SSH mi restituisce l'orario corretto..
    Ho impostato il date.timezone dal php.ini e lanciando un phpinfo() mi restituisce:
    codice:
    Default timezone Europe/Rome
    date.timezone Europe/Rome Europe/Rome
    Inoltre ho provato a dare il comando:
    Codice PHP:
    date_default_timezone_set('Europe/Rome'); 
    Ma quando faccio un:
    Codice PHP:
    echo gmdate("H:i:s"time()); 
    Continua a restituirmi sempre l'orario spostato di un'ora indietro..
    Vi prego, aiutatemi a venirne a capo..!

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    gmdate() restituisce SEMPRE l'orario GMT, basta leggere la documentazione, devi usare date().

  3. #3

  4. #4
    ...
    Ultima modifica di Luigi636; 11-02-2018 a 01:56

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    519
    ti posto uno script di esempio,
    nel caso tu debba gestire date e orari di timezone diverse
    agendo solo con "DateTime"

    mi era servito per capire il metodo,
    Codice PHP:
    <?php
    echo "<h2>LOCAL TIMESTAMP</h2>";
    $tz 'UTC';
    echo 
    $tz.' time : '.myTimestamp($tzfalse)."<br />"."\r\n";
    $tz false;  //default timezone
    echo 'Default timezone time : '.myTimestamp($tzfalse)."<br />"."\r\n";
    $tz 'America/New_York';
    echo 
    $tz.' time : '.myTimestamp($tzfalse)."<br />"."\r\n";
    $tz 'Europe/Rome';
    echo 
    $tz.' time : '.myTimestamp($tzfalse)."<br /><br />"."\r\n\r\n";

    echo 
    "<h2>LOCAL TIMESTAMP WORKAROUND</h2>";

    $tz 'UTC';
    echo 
    $tz.' time : '.myTimestamp($tztrue)."<br />"."\r\n";
    $tz false;  //default timezone
    echo 'Default timezone time : '.myTimestamp($tztrue)."<br />"."\r\n";
    $tz 'America/New_York';
    echo 
    $tz.' time : '.myTimestamp($tztrue)."<br />"."\r\n";
    $tz 'Europe/Rome';
    echo 
    $tz.' time : '.myTimestamp($tztrue)."<br />"."\r\n";

    function 
    myTimestamp($t$o)
    {
        
    $dt = ( $t
              
    ? new DateTime(null, new DateTimeZone($t))
              : new 
    DateTime(null)
              );
        
    $dl $dt->getTimestamp()
            + ( 
    $o
              
    $dt->getOffset()
              : 
    0
              
    );
        
    $df = ( new DateTime("@".$dl) )->format('Y-m-d H:i:s');
        return 
    $df;
    }
    ?>

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 © 2024 vBulletin Solutions, Inc. All rights reserved.