Php mktime在不同的时区返回相同的值

Php mktime在不同的时区返回相同的值,php,timezone,mktime,Php,Timezone,Mktime,通常这个问题有相反的意思。但是,我遇到了一个问题,PHP中的mktime()函数总是给我带来UTC时间戳,尽管更改了默认时区。换句话说,拥有这个简单的页面: <!DOCTYPE html> <html> <body> <div> <?php echo phpversion().'<br />'; date_default_timezone_set('America/Los_Angeles'); $s

通常这个问题有相反的意思。但是,我遇到了一个问题,PHP中的
mktime()
函数总是给我带来UTC时间戳,尽管更改了默认时区。换句话说,拥有这个简单的页面:

<!DOCTYPE html>
<html>
<body>
<div>
    <?php
    echo phpversion().'<br />';
    date_default_timezone_set('America/Los_Angeles');
    $script_tz = date_default_timezone_get();
    echo $script_tz.'<br>';
    $user_now = mktime();
    echo $user_now.'<br />'."\r\n";
    
    date_default_timezone_set('UTC');
    $script_tz = date_default_timezone_get();
    echo $script_tz.'<br>';
    $utc_now = mktime();
    echo $utc_now.'<br />'."\r\n";
    ?>
 </div>
</body>
</html>

我收到这个:

5.3.28<br>
America/Los_Angeles<br>
1556333103<br>
UTC<br>
1556333103<br>
5.3.28
美国/洛杉矶
1556333103
UTC
1556333103
结果,。正如您可以在不同的时区看到相同的值。 您可以确保按照以下步骤进行操作:


我只是在尝试得到不同结果的过程中失去了希望。请帮我一把,告诉我我做错了什么?在何处查找原因?

时间戳不受时区的影响(它们只是自unix纪元以来的秒数,无论您的时区如何,都是相同的),因此
mktime
为相同的时间返回相同的值。但是,当您显示该值时(例如,使用
date
),您将看到两个时区的差异:

date_default_timezone_set('America/Los_Angeles');
$script_tz = date_default_timezone_get();
echo $script_tz.'<br>';
$user_now = time();
echo $user_now.'<br />'."\r\n";
echo date('Y-m-d H:i:s', $user_now).'<br />'."\r\n";

date_default_timezone_set('UTC');
$script_tz = date_default_timezone_get();
echo $script_tz.'<br>';
$utc_now = time();
echo $utc_now.'<br />'."\r\n";
echo date('Y-m-d H:i:s', $utc_now).'<br />'."\r\n";
date\u default\u timezone\u set('America/Los\u Angeles');
$script_tz=date_default_timezone_get();
echo$script_tz.“
”; $user_now=time(); 立即回显$user_。“
”。“\r\n”; 回显日期('Y-m-d H:i:s',$user_now)。“
”。“\r\n”; 日期\默认\时区\设置('UTC'); $script_tz=date_default_timezone_get(); echo$script_tz.“
”; $utc_now=time(); 立即回显$utc_.“
”。“\r\n”; 回显日期('Y-m-d H:i:s',$utc\U now)。“
”。“\r\n”;
输出:

America/Los_Angeles<br>1556334114<br /> 2019-04-26 20:01:54<br />
UTC<br>1556334114<br /> 2019-04-27 03:01:54<br />
America/Los_Angeles
1556334114
2019-04-26 20:01:54
UTC
1556334114
2019-04-27 03:01:54
请注意,
mktime
,您应该只使用
time