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