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());

...これら2つを使用:

$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 に答える