从Date()获取两个不同的Day值

时间:2013-05-23 01:34:01

标签: php

所以我有一个充满日常事件的数据库,我想在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&amp; php时区,我研究的任何东西都让我在我的页面上没有结果(比如mysql的'set time_zone'和php's'date_default_timezone_set')。有谁知道这里发生了什么?

1 个答案:

答案 0 :(得分:2)

尝试更换您的专线:

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

用你的时区取代'America / Denver'。

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