2013-07-11 14 views
6

通常保管されている時刻データを削除する必要があるかどうかわかりません。JSON日付からの時刻(時間なし)

2013-07-01T00:00:00.000Z

しかし、このフィールドは日付のみを表す必要があるため、私はこのようなリターンの前に再フォーマットすると、そのそれがより明確になるだろうと感じ:我々はpostgresとのDateTimeのように私たちのAPIから返さなるだろうnode.jsを使用しています時間は関係ありません。

2013-07-01

思考?

+0

私には妥当な音です。 –

+0

この問題もあります。誕生日列、日付タイプのユーザーテーブルを作成します。だから、それは日付だけを持つべきです(時間なし)。ノードポストグラムでクエリを実行する時間を取得します。 – Kiddo

答えて

3

APIユーザーとしては、むしろ長い形式の日付を受け取ることになります。

  1. タイムゾーン:長い形式は、実際に建てられたタイムゾーンを持っていることが重要です。いくつかの理由のために

  2. 構文解析:ほとんどの言語は、その長い形式をネイティブの「日付」オブジェクトとして読み取ることができます。 C#& Javaのようないくつかの言語では、その短い日付を正しい時間帯を使用して強制する必要があります。また、長い形式の月/日の混乱を避けることもできます。
  3. 比較:ユーザーがという短い日付を渡した場合、APIが正しく処理する予定ですか?優れたAPIは、同じように出入りするように見える必要があります。
4

カレンダーの日付を表す場合は、時間や時間帯がありません。短い表現はより理にかなっています。

多くのJavaScript実装では、新しい日付(文字列)はbad thingsになります。

new Date('2015-09-23') 
Tue Sep 22 2015 20:00:00 GMT-0400 (Eastern Daylight Time) 

問題のうち最も簡単な方法は、javascriptのの日付を使用するのではありません - このタイプは、他の言語でのDateTimeOffsetにアップ一致しました。カレンダーの日付の値を表すのは悪い方法です。

しかし、おそらくJavaScriptの日付を使用するつもりです。次の最も簡単な「修正」は、標準表現を避けることです(標準表現はUTCでDateTimeOffsetとして解釈されるため)。 2つの可能性があります:

" - "の代わりに "/"を使用してください。

new Date('2015/09/23') 
Wed Sep 23 2015 00:00:00 GMT-0400 (Eastern Daylight Time) 

先頭のゼロは破棄されます。

new Date('2015-009-23') 
Wed Sep 23 2015 00:00:00 GMT-0400 (Eastern Daylight Time) 

クライアント側とサーバー側の両方にjavascriptがある場合は、完了です。サーバー側に何か他のものがある場合は、非標準の日付形式が入ってくるとサーバー言語が何をするのかを検討する必要があります。

関連する問題