PHP服务器\u时区\u偏移量说明
我正在修改一个现有的应用程序,它使用常量PHP服务器\u时区\u偏移量说明,php,mysql,Php,Mysql,我正在修改一个现有的应用程序,它使用常量SERVER\u TIMEZONE\u OFFSET。我以前从未遇到过这种情况,我能找到的最接近“SERVER\u TIMEZONE\u OFFSET”的搜索是在PHP文档中找到TIMEZONE\u OFFSET\u get()函数 下面是一个使用了`服务器\时区\偏移量'的查询示例 $sql = "select s.weekNum, count(s.gameID) as gamesTotal,"; $sql .= " min(gameDateTime)
SERVER\u TIMEZONE\u OFFSET
。我以前从未遇到过这种情况,我能找到的最接近“SERVER\u TIMEZONE\u OFFSET”的搜索是在PHP文档中找到TIMEZONE\u OFFSET\u get()
函数
下面是一个使用了`服务器\时区\偏移量'的查询示例
$sql = "select s.weekNum, count(s.gameID) as gamesTotal,";
$sql .= " min(gameDateTime) as firstGameTime,";
$sql .= " (select gameDateTime from schedule where weekNum = s.weekNum and DATE_FORMAT(gameDateTime, '%W') = 'Thursday' order by gameDateTime limit 1) as cutoffTime,";
$sql .= " (DATE_ADD(NOW(), INTERVAL " . SERVER_TIMEZONE_OFFSET . " HOUR) > (select gameDateTime from schedule where weekNum = s.weekNum and DATE_FORMAT(gameDateTime, '%W') = 'Sunday' order by gameDateTime limit 1)) as expired ";
$sql .= "from schedule s ";
$sql .= "group by s.weekNum ";
$sql .= "order by s.weekNum;";
这是我试图改变它
//仅添加我更改的$SQL行,我从上面的代码更改了该行
$sql .= " (DATE_ADD(NOW(), INTERVAL " . date_default_timezone_set('Australia/Brisbane') . ") > (select gameDateTime from schedule where weekNum = s.weekNum and DATE_FORMAT(gameTimeEastern, '%W') = 'Sunday' order by gameTimeEastern limit 1)) as expired ";
上面的查询只会生成一条错误消息,说明您的sql syntx在date\u default\u timezone\u set('Australia/Brisbane')附近出现错误。”>
问题
SERVER\u TIMEZONE\u OFFSET
的确切用途是什么SERVER\u TIMEZONE\u OFFSET
以接受date\u default\u TIMEZONE\u set('Australia/Brisbane')
显然我的尝试失败了,有没有指针出错SERVER\u TIMEZONE\u OFFSET
之外,是否有一个可能的mysql station替代方案INTERVAL 5 HOUR
^
由于您知道这两个时区,您可以很容易地分辨出该数字。请注意,为PHP设置的时区并不一定意味着MySQL将具有相同的时区。如果您的MySQL服务器使用的时区与应用程序预期的相同,您只需从查询中删除interval子句即可
SERVER\u TIMEZONE\u OFFSET
是在该应用程序中使用的应用程序级常量,从外观上看,它只代表一个数字。您可以根据前面解释的差异自行调整该数字
您不必更改所有使用该常量的查询。在PHP配置文件中,您只需定义一次常量值,您的查询就会从中选择它
define("SERVER_TIMEZONE_OFFSET",6); // Or any number you see fit
谢谢你现在就开始,并给出反馈
define("SERVER_TIMEZONE_OFFSET",6); // Or any number you see fit