2012-08-07 1 views
13

私は、JSONオブジェクトに日付でグループ化したいタイムスタンプを持つたくさんのオブジェクトを持っています。究極の目標は、このようなものです:日付を取得するにはJavascript日付 - 時間を無視して日付だけを設定しますか?

myObject = { 
    "06/07/2012" : [ 
     { 
      "timestamp" : "07/06/2012 13:30", 
      ... 
     }, 
     { 
      "timestamp" : "07/06/2012 14:00", 
      ... 
     } 
    ], 
    "07/07/2012 [...] 
} 

、私は各タイムスタンプオブジェクトをテストし、使用しています:

var visitDate = new Date(parseInt(item.timestamp, 10)); 
visitDate.setHours(0); 
visitDate.setMinutes(0); 
visitDate.setSeconds(0); 

私はとして保存することを使用してい..then JSONオブジェクトの名前。それは面倒なようです、そして、私は物事を行うより簡単な方法があるはずだと確信しています。

アドバイス/提案を歓迎します!

+0

私は 'new Date(parseInt(" 07/06/2012 13:30 "、10));が動作するとは思いません。または私は何かを逃していますか? – KooiInc

+0

ええ、そうです - 申し訳ありませんが、これは私の既存のコードの一部に貼り付けられており、プルーフリーディングされていません!現在のコードでは、タイムスタンプが 'エポックからのミリ秒'形式で保存されるため、元のコンテキストではより意味があります。 – Paul

+0

わかりました。 – KooiInc

答えて

23

.toDateString()

また、.getDate(),.getMonth()、および.getYear()を使用しますか?

私の考えでは、日付でグループ化する場合は、日付にアクセスし、設定しないでください。日付フィールドにアクセスする方法をいくつか設定することで、それらを比較してグループ化することはできますか?ここ

チェックアウトすべての楽し日付方法:MDN Docs


編集:

var newDate = new Date(oldDate.toDateString()); 

日のコンストラクタは次のとおりです。日付オブジェクトとしてそれを維持するためにをたい場合は、単にこれを行います文字列を解析するのはかなりスマートですが(ただし、注意点はありませんが、これはかなり一貫して動作するはずです)、古いDateを使用して日付だけを印刷すると、oriで行ったのと同じ結果になりますジナルポスト。

+0

これはおそらくもっと賢明な方法ですが、私はそれをDateオブジェクトとして残すことを考えていましたが、とにかくJSONのテキストとして保存されています。 '.toDateString()'を使用しなかった元の理由は、フィールドに空白があることがわかりませんでした。実際には問題だとは思わないでください。 – Paul

+1

注:少しずつスクロールして、メソッドの*完全なリストを見つけてください。 toStringの変種は非常に多く、あなたの頭が浮かびます。 –

+0

ooh '.valueOf()' - これも便利です!ありがとう! – Paul

7

あなたは、余分な日付オブジェクトを作成する気にしない場合は、試みることができる:

var tempDate = new Date(parseInt(item.timestamp, 10)); 
var visitDate = new Date (tempDate.getUTCFullYear(), tempDate.getUTCMonth(), tempDate.getUTCDate()); 

私は時間がなくて、現在の月の日付を取得するために非常に似た何かをします。

+3

私はそれがgetUTCDateであるべきだと思います。 getUTCDayは曜日(0,6)を返します。 getUTCDateは、その月の日(1,31)を返します。 –

関連する問題