2016-05-10 12 views
0

フォームのクライアントの日付/時刻文字列をJavaScriptと瞬間を使用してJSONの日付/時刻文字列に変換しようとしています(Django REST APIバックエンド)。これでJavaScriptを使用してクライアントの日付/時刻文字列をJSONの日付/時刻文字列に変換する

document.getElementById("dt_tm").value = 
moment(document.getElementById("inp-st").value, "DD/MM/YYYY HH:mm").toJSON(); 

2つの問題:日付形式はハード異なる日付形式を有することができるクライアントとしてコード化することはできません

  1. 瞬間は、日付を調整するここでは、私がこれまで持っているものですバックエンドが(Djangoのタイムゾーンを使って)その機能を実行するので、これを行う必要はありません。
  2. 例えばので

moment("14/05/2016 18:00", "DD/MM/YYYY HH:mm").toJSON() = 
"2016-05-14T17:00:00.000Z" 

私が必要なのである。

"2016-05-14T18:00" 

(この例では私のタイムゾーンが現在GMT + 1です)

+0

'JSON.stringify(新しいDate())' ' "2016-05-10T14:27:19.698Z" でご –

+0

後JSON.stringifyはtoJSONと同じことを行うと思われるもの' thatsの場合。 – tyebillion

+0

「ハードコーディングできない」とはどういう意味ですか?文字列として送信する必要があるので、フォーマットをハードコード化する必要はありませんか? – 4castle

答えて

2

あなたの場合toJSONに別の形式の日付を返すようにしたい場合は、moment.fn.toJSONをdefの代わりに独自の形式で返すように再定義してくださいault ISO8601の日付形式です。これはdocumentationに概説されています。

moment.fn.toJSON = function() { 
    return this.format("YYYY-MM-DDTHH:mmZ"); 
}; 
+0

それは私の主な問題を解決します。私は依然としてクライアントで米国の日付形式に切り替える問題はありますが、とにかく私はあなたにティックを与えました。 – tyebillion

+0

私はフォーマットの最後に "Z"があるべきだと思います! – tyebillion

+0

私はそれを変更しました。私はそれが正確に何かを知らない。米国の日付形式については、「ユーザーが米国出身で他の形式を使用している場合」のif文を使用することができます。 – 4castle

関連する問題