1

所以我有一个数据库,里面装满了我想在 php 页面上显示的日常事件。我已经连接到数据库并填充了表格 - 没问题。然后,我创建了一个显示一周中各天的链接列表,以便用户可以单击这一天,表格将由当天安排的任何事件填充:

<ul id="day-list">
    <li><a href="?eventDay=Monday">Monday</a></li>
    <li><a href="?eventDay=Tuesday">Tuesday</a></li>
    ...etc etc... you get the idea.
</ul>

在设置日期列表之前的代码中,我有这个:

$theDay = isset($_GET['eventDay']) ? $_GET['eventDay'] : date('l', time())
// I've also tried date('l');
$data = $conn->query("SELECT * FROM 'my_table' WHERE 'event_day' = '$theDay';");

这应该选择用户选择的任何一天,或者如果 $_GET['meetingDay'] 为 null/nil,则选择今天。它确实有效,但是,我注意到大约晚上 9 点(我的时间)它切换到第二天。我还在其他地方的同一页面上写了date('l')date('l', time())并且显示了正确的时间,我只是遇到了 $theDay 变量的问题。

我查看了 mysql 和 php 时区,我研究的任何内容都没有在我的页面上产生任何结果(例如 mysql 的“set time_zone”和 php 的“date_default_timezone_set”)。有谁知道这里发生了什么?

4

1 回答 1

1

尝试更换您的线路:

$theDay = isset($_GET['eventDay']) ? $_GET['eventDay'] : date('l', time());

...与这两个:

$today = new DateTime('now', new DateTimeZone('America/Denver')); 
$theDay = isset($_GET['eventDay']) ? $_GET['eventDay'] : $today->format('l');

用您的时区替换“美国/丹佛”。

支持的时区列表... http://php.net/manual/en/timezones.php

于 2013-05-23T02:20:45.383 回答