4

私は fullcalendar プラグインを使用しています。

PHP URL から json イベントを取得しています。このようなもの:

$('#calendar').fullCalendar({ events: "/myfeed.php" });

したがって、イベントを返す私のphpページでは、3つのGETパラメーターを取得しています:

  • 「_」
  • '始める'
  • '終わり'

start および end パラメータは、UNIX タイムスタンプで日付を示します。これまでのところ問題はありませんが、発生する問題は、OS のタイム ゾーンを変更した場合です。カレンダーの同じ日の同じクエリに対して、これらのパラメーター start と end も変更します。最も奇妙な部分は、Mozilla Firefox でのみ発生することです。Google Chrome では、この問題は発生しません。

例えば

タイムゾーンを設定しました ((UTC-04: 00) Santiago) 議題で 2012 年 9 月 9 日を参照しています。firebug は、これらのパラメータが私の php ページに送信されていることを示しています

  • _ 1347245953581
  • 終了 1347246000
  • 開始 1347159600

しかし、タイム ゾーンを自分の OS から ((UTC-03: 00) ブエノスアイレス) に変更すると ((UTC-03: 00) ブエノスアイレス) 議題で 09.09.2012 に相談すると、PHP ページに送信される他のパラメーターになります。

  • _ 1347246338047
  • 終了 1347332400
  • 開始 1347246000

同じ日であるため、イベントをチェックするために送信される他の開始パラメーターと終了パラメーターがあります。

4

1 に答える 1

0

fullcalendar には、役立つ場合がある ignoreTimezone オプションがあります。フィードに渡される開始/終了時間に影響するかどうかはわかりません。

http://arshaw.com/fullcalendar/docs/event_data/ignoreTimezone/

もう 1 つのオプションは、渡されたタイムスタンプを Date オブジェクトに変換し、後で Date オブジェクトからローカル データを取得してクエリで使用することです。

JavaScript で Unix タイムスタンプを時刻に変換する

正確な答えではないことは承知していますが、少しは役立つかもしれません。

渡されたタイムスタンプをローカルで書式設定された日付に変換する PHP コードのサンプルを次に示します。

$startts = $_REQUEST["start"]; // original timestamp

$startdt = new DateTime('now', new DateTimeZone('Europe/Oslo') ); // setup a local datetime
$startdt->setTimestamp($startts); // Set the date based on timestamp

echo $startdt->format('Y-m-d H:i:s'); // Output local date and time
于 2013-08-01T12:11:37.687 に答える