【发布时间】:2012-03-29 06:36:57
【问题描述】:
在我的网络应用中,我让用户从一个列表(包含all timezones that PHP supports)中选择他们喜欢的时区。
假设$_POST['timezone'] 是选择的时区(例如 America/New_York)。
我使用以下代码设置它,不会产生错误:
default_date_timezone_set($_POST['timezone']);
但是当我重新加载页面时,它会恢复到之前的状态(例如 Europe/Moscow)。
我是否必须在每个脚本中设置默认时区,或者函数 (default_date_timezone_set) 是否正常工作?
谢谢!
【问题讨论】:
-
PHP 是无状态的,这意味着对于每个请求,您都会丢失任何设置或变量。
-
那个函数不是在服务器级别设置的吗?你不希望它在会话或客户端级别,因为它是基于用户的吗?
-
我想你会的。与更改核心设置的任何函数一样,这些更改具有脚本运行时范围。否则,“多用户”的概念是不可能的……
-
@JimmyBanks,不,我非常了解会话和 cookie。 SQL 表与什么有什么关系?我只是忘了
default_date_timezone_set不影响服务器但用户的会话 -
你在开玩笑吗?你不认为我知道如何将值保存到会话中吗?我已经说过我忘记了该功能会影响用户会话而不是服务器。 (它只影响客户查看日期的方式,而不影响日期在数据库中的存储方式)