设置PHP';s默认时区

设置PHP';s默认时区,php,time,timezone,Php,Time,Timezone,在我的web应用程序中,我让用户从一个列表(包含)中选择他们喜欢的时区 假设$\u POST['timezone']是所选时区(例如美国/纽约)。 我使用以下代码进行设置,该代码不会产生错误: default_date_timezone_set($_POST['timezone']); 但当我重新加载页面时,它会回到以前的状态(例如,欧洲/莫斯科)。 我是否必须在每个脚本中设置默认时区,或者函数(default\u date\u timezone\u set)是否正常工作? 谢谢 您应该将其保

在我的web应用程序中,我让用户从一个列表(包含)中选择他们喜欢的时区

假设
$\u POST['timezone']
是所选时区(例如
美国/纽约
)。 我使用以下代码进行设置,该代码不会产生错误:

default_date_timezone_set($_POST['timezone']);
但当我重新加载页面时,它会回到以前的状态(例如,欧洲/莫斯科)。 我是否必须在每个脚本中设置默认时区,或者函数(
default\u date\u timezone\u set
)是否正常工作?
谢谢

您应该将其保存在数据库中,并在执行任何与时间相关的操作时设置时区。它工作正常。它只应该为脚本执行设置它(一个HTTP请求)。

您应该将它保存在数据库中,并在任何时候执行与时间相关的操作时设置时区。它工作正常。它只应该为该脚本执行设置它(一个HTTP请求)。

此函数仅更改脚本执行的时区。
您可以将时区存储在会话变量中,并在每个页面的顶部设置时区

此函数仅更改脚本执行的时区。
您可以将时区存储在会话变量中,并在每个页面的顶部设置时区

设置包含用户选择的时区的cookie

/// Make sure you sanitize all POST/COOKIE variables if needed.
$timezone = $_COOKIE['timezone'];

if(isset($_POST['timezone'])) {
    /// Set cookie for some amount of time -- I chose 2 weeks
    setcookie('timezone',$_POST['timezone'],time()+60*60*24*14);
    $timezone = $_POST['timezone'];
}

default_date_timezone_set($timezone);

设置包含用户选择的时区的cookie

/// Make sure you sanitize all POST/COOKIE variables if needed.
$timezone = $_COOKIE['timezone'];

if(isset($_POST['timezone'])) {
    /// Set cookie for some amount of time -- I chose 2 weeks
    setcookie('timezone',$_POST['timezone'],time()+60*60*24*14);
    $timezone = $_POST['timezone'];
}

default_date_timezone_set($timezone);

PHP是无状态的,这意味着每个请求都会丢失任何设置或变量。该函数不是在服务器级别设置的吗?因为它是基于用户的,所以您不希望在会话或客户端级别使用它吗?我想您需要。与任何更改核心设置的函数一样,这些更改具有脚本运行时范围。否则,“很多用户”的概念就不可能了…@JimmyBanks,不,我对会话和cookie的理解非常好。SQL表与任何事情都有什么关系?我忘了默认的日期时区设置不会影响服务器但是用户的会话你在开玩笑吗?难道你不认为我知道如何将值保存到会话中吗?我已经说过,我忘记了该功能影响了用户会话,而不是服务器。(它只影响客户端如何查看日期,而不影响日期在数据库中的存储方式)PHP是无状态的,这意味着对于每个请求,都会丢失任何设置或变量。该函数不是在服务器级别设置的吗?因为它是基于用户的,所以您不希望在会话或客户端级别使用它吗?我想您需要。与任何更改核心设置的函数一样,这些更改具有脚本运行时范围。否则,“很多用户”的概念就不可能了…@JimmyBanks,不,我对会话和cookie的理解非常好。SQL表与任何事情都有什么关系?我忘了默认的日期时区设置不会影响服务器但是用户的会话你在开玩笑吗?难道你不认为我知道如何将值保存到会话中吗?我已经说过,我忘记了该功能影响了用户会话,而不是服务器。(它只影响客户端查看日期的方式,而不影响日期在数据库中的存储方式)