时区转换器 PHP/MYSQL


Timezone Changer PHP/MYSQL

>我目前有一个代码,可以从表("时区")中提取员工时区的成员,该表具有PHP友好变量,例如:"欧洲/伦敦"

我一直在尝试在我的连接文件中设置时区(在连接到数据库之后),但它似乎没有改变。

    $timezonechanger = $db->query(" SELECT * FROM `timezones` WHERE staffid='{$user->data['id']}'");
$timenum = $db->num( $timezonechanger );
$timechange = $db->assoc( $timezonechanger );
if($timenum==0){
date_default_timezone_set('Europe/London');
    putenv( "TZ=Europe/London" );
}else{
putenv( "TZ=$timechange[timezone]" );
date_default_timezone_set('$timechange[timezone]');
}

以上不起作用,但如果我要将时区设置为类似这样:

date_default_timezone_set('Pacific/Midway'); 

如果不使用表中的数据来拉取它,它就可以正常工作。

我不确定出了什么问题,我已经回显了表数据以确保信息肯定会被拾取......

任何帮助将不胜感激

尝试此操作,因为您正在字符串中传递 php 变量,有时由于服务器设置,它会导致问题。

顺便说一下,使用php变量而不将它们与字符串连接起来不是一个好习惯。

$timezonechanger = $db->query(" SELECT * FROM `timezones` WHERE staffid='{$user->data['id']}'");
    $timenum = $db->num( $timezonechanger );
    $timechange = $db->assoc( $timezonechanger );
    if($timenum==0)
    {
        date_default_timezone_set('Europe/London');
        putenv( "TZ=Europe/London" );
    }
    else
    {
        $put_env = 'TZ='.$timechange['timezone'];
        $default_str = $timechange['timezone'];
        putenv($put_env);
        date_default_timezone_set($default_str);
    }

请让我知道反馈。