Date Javascript: définissez-vous juste la date, en ignorant le temps?

J'ai un tas d'objets, chacun ayant un horodatage, que je veux grouper par date, dans un objet JSON. Le but ultime est quelque chose comme ceci:

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

Pour obtenir la date, je teste chaque objet Timestamp et utilise:

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

.. alors je l'utilise pour stocker comme un nom pour l'objet JSON. Il semble désordonné, et je suis sûr qu'il devrait y avoir une façon plus facile de faire les choses.

Des conseils / suggestions bienvenus!

Que diriez-vous de .toDateString() ?

Sinon, utilisez .getDate() , .getMonth() et .getYear() ?

Dans mon esprit, si vous souhaitez regrouper les choses par date, vous souhaitez simplement accéder à la date, ne pas la configurer. En ayant une certaine façon d'accéder au champ Date, vous pouvez les comparer et les regrouper, non?

Découvrez toutes les méthodes de date amusantes ici: MDN Docs


Modifier: Si vous souhaitez le conserver comme objet de date, procédez comme suit:

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

Le constructeur de la date est assez intelligent à propos de l'analyse des chaînes (mais pas sans une quantité de mises en garde, mais cela devrait fonctionner de manière assez cohérente), donc prendre l'ancienne Date et l'imprimer uniquement à la date sans délai entraînera le même effet que vous avez Poste original.

Si cela ne vous dérange pas de créer un objet de date supplémentaire, vous pouvez essayer:

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

Je fais quelque chose de très similaire pour obtenir une date du mois en cours sans le temps.