我使用codeigniters的timezone_menu()。我在数据库中存储了一个timezone reference。
时区参考看起来像UM12,UM11,UM10,UTC,UP1,UP2等,等等。
使用timezones(),我可以从UTC获得时差。我想做的是使用date_default_timezone_set('UTC');设置用户的时区;但是该方法不接受CI使用的时区引用。我该怎么办?
答案 0 :(得分:0)
好的,因此config / config.php中有一个time_zone变量
$timezone = session_value ?? dfault_value;
用户登录到系统后,分配时间值并将该变量引用到配置中或创建一个钩子,很抱歉,我不急于搜索其他内容,但是我认为这一定可以。
答案 1 :(得分:0)
CodeIgniter TimeZone函数使用custom naming作为其时区:UM12
,UM11
,UM10
,UTC
,UP1
... < / p>
这些并不常见,因此仅适用于CodeIgniter自己的TimeZone函数,它们分别为timezone_menu()
和timezones()
。
PHP函数date_default_timezone_set()
需要proper TimeZone identifier之类的Europe/Paris
。
最好的方法是使用其他方法生成TimeZone列表。但是,我了解您对使用CI的内部库的兴趣,而不是寻找另一个库来为您执行此操作。
所以我想您需要搜索一个采用CI的TimeZone标识符并输出PHP的TimeZone标识符的函数。 This SO answer似乎满足您的需求。