时区转换器PHP/MYSQL

时区转换器PHP/MYSQL,php,mysql,Php,Mysql,我现在有一个代码,它从一个表中提取一个成员时区这个表有PHP友好的变量,比如:Europe/London 在连接到数据库后,我一直试图在连接文件中设置时区,但似乎没有改变 $timezonechanger = $db->query(" SELECT * FROM `timezones` WHERE staffid='{$user->data['id']}'"); $timenum = $db->num( $timezonechanger ); $timechange =

我现在有一个代码,它从一个表中提取一个成员时区这个表有PHP友好的变量,比如:Europe/London

在连接到数据库后,我一直试图在连接文件中设置时区,但似乎没有改变

    $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);
    }

请让我知道反馈。

呃。。。我很难理解num和assoc是什么。对于num,你确定你不是指num_行?而对于assoc-fetch_assoc?据我所知,num和assoc不是PHP/MySQL的核心函数。它们做的事情是一样的,我想这就是我用于查询等的PDO_MySQL版本。你认为这是什么意思不是核心功能。除非你有一些自定义函数。我最近才开始使用这个版本的编码,我曾经使用旧的MYSQL_FETCH_数组和MYSQL_NUM_行,但是我们转向了一个新的系统,它使用我最近刚刚熟悉的这种查询形式,无论如何,查询不是问题,时区更改为。仅供参考:“$timechange[timezone]”这被视为文字字符串。