更改PHP默认时区不起作用

Xan*_*ano 0 php timezone date

我正在尝试将一行代码添加到html文档中,并加上时间。我希望时区相对于我,但是我无法从默认UTC更改时区。我已经将php.ini文件更改为PST并使用date_default_timezone_set('America / Los_Angeles'); 但它仍会显示我的时区之前7小时的时间。以下是处理时间的代码:

session_start();
if(isset($_SESSION['name']))
{
    date_default_timezone_set('America/Los_Angeles');

    $msg = $_POST['text'];

    $fo = fopen("log.html", 'a');
    fwrite($fo, "<div class=msgln>(".date("g:i A").") <b  style=color:red;>".$_SESSION['name']."</b>: ".stripslashes(htmlspecialchars($msg))."<br></div>
    ");
    fclose($fo);
}
Run Code Online (Sandbox Code Playgroud)

gvi*_*iew 5

服务器应设置为UTC,并且您不希望更改默认值。相反,您要做的是根据时间创建一个DateTime对象,然后将其转换为所需的时区并显示。

$now = new DateTime();
$now->setTimezone(new DateTimeZone('America/Los_Angeles'));
echo $now->format('g:i A');
Run Code Online (Sandbox Code Playgroud)

我不知道您的格式字符串是否有效,但是假设format方法与您在原始示例中使用的date()函数所接受的格式兼容。