0

Facebook PHP SDK を使用してイベントをページに投稿していますstart_timeが、フォーム フィールドから日付を取得しているため、パラメーターに問題があります。私が理解していることから、このパラメーターはISO 8601形式の日付のみを受け入れるため、次のことを行いました...

フォーム フィールドには、次のように日付と時刻が表示されます (例)。11/06/2013 08:00PM

次のようにして、Javascriptのタイムスタンプに変換します。

var d = new Date('11/06/2013 08:00PM'),
    eventTimestamp = d.getTime();

吐き出す1383796800000-このタイムスタンプを人間が読める形式に変換すると、Thu, 07 Nov 2013 04:00:00 GMT (11/6/2013 8:00:00 PM GMT-8 in my timezone...) になります。ここまでは順調ですね!

ここで問題が発生します。POST を使用して、このタイムスタンプを Facebook イベントを投稿するスクリプトに送信し、それを PHP で行う param に使用します。

date('c', $_POST['timestamp']);

スクリプトを実行すると、投稿されたイベントの日付が (Facebook イベント ページのビューとして): 1995 年 11 月 25 日 (土曜日) と表示されます。

これを十分に説明したことを願っています。誰かがここで私を助けてくれますか?

編集...

タイムスタンプによって返されたデータをスクリプトに表示したところ、興味深いことが起こりました。多分私は何かが欠けているだけかもしれませんが、私がエコーしたとき、私$_POST['timestamp']は得ました:

1383796800000(正しい)

しかし、私がエコーしたとき、私date('c', $_POST['timestamp'])は得ました:

1995-11-25T12:18:08-08:00(非常に正しくありません)

私は何が欠けていますか?

4

1 に答える 1

0

私が何かを調べていない限り、date() の日付範囲は「1901 年 12 月 13 日金曜日 20:45:54 GMT から 2038 年 1 月 19 日火曜日 03:14:07 GMT」であり、タイムスタンプはこの範囲よりも高くなっています。

編集...

で割る必要があります。1000

date('c' $_POST['timestamp']/1000);

戻ります2013-11-06T21:00:00-07:00

于 2013-10-17T04:16:07.337 に答える