4

PHP と momentjs の日時表現を同期させるのに問題があります。モスクワのタイムゾーンで datetime を持っているとしましょう:

2013-06-10T10:40:00.000+04:00

ユーザーには、2013-06-10T10:40:00 というローカル時刻が表示されます。彼がスペインにいるかアメリカにいるかは関係ありません。次の php コードは、必要な適切な時間を生成します。

$date = new DateTime('2013-06-10T10:40:00.000+04:00');
echo $date->format('d.m.Y H:i:s');

出力は次のとおりです。

10.06.2013 10:40:00

しかし、momentjs を使用してフロントエンドで同じ日時文字列を解析すると、次のようになります。

moment('2013-06-10T10:40:00.000+04:00').format('D.M.YYYY h:mm:ss');

出力は次のとおりです。

10.6.2013 8:40:00

ブラウザのタイム ゾーンはヨーロッパ/ベルリン (+02:00) です。utc() を使用すると、日付も間違った方法で計算されます。必要なのはその場所の現地時間なので、php の場合はそれが正しい時間です。momentjs に解析文字列を渡す:

moment('2013-06-10T10:40:00.000+04:00', "YYYY-MM-DD HH:mm").format('D.M.YYYY h:mm:ss')

トリックを行うので、タイムゾーンは削除されます。しかし、実際には解析文字列をグローバルに設定する必要がありますが、どうすればよいのでしょうか?

提案をありがとう。

4

2 に答える 2