PHP默认时区设置


PHP Default Timezone Set

我在PHP中设置默认时区时遇到了一个看似简单的问题。我试图使用default_timezone_set()来影响我的mktime()功能,但没有成功。

简而言之,我的服务器设置为UTC,我使用default_timezone_set()设置时区,然后调用mktime()设置数据库日期时间戳。

但是,返回的时间(以毫秒为单位)将返回为UTC时间。我回显了default_timezone_get(),它确实作为我正在设置的时区返回,并且似乎无法确定为什么一旦我成功设置了时区,它就不会影响mktime()功能。

我是不是遗漏了什么?设置默认时区不是应该影响PHP中的所有日期/时间函数吗?

Unix时间戳在UTC中总是,您需要在获得时间戳后将其转换为正确的时区

您尝试过使用date_default_timezone_set吗?来自mktime手动

<?php
// Set the default timezone to use. Available as of PHP 5.1
date_default_timezone_set('UTC');
// Prints: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));
// Prints something like: 2006-04-05T01:02:03+00:00
echo date('c', mktime(1, 2, 3, 4, 5, 2006));
?>

好吧,我只是意识到我不是从第三个PHP文件调用时区集,当然,date_default_timezone_set()函数不会影响单独的文件。

然而,这些回答和评论让我对如何处理它有了一些新的想法!感谢大家的投入。