Javascript日期-只设置日期,忽略时间?

Javascript日期-只设置日期,忽略时间?,javascript,date,Javascript,Date,我有一堆对象,每个对象都有一个时间戳,我想按日期将它们分组到一个JSON对象中。最终目标如下: myObject = { "06/07/2012" : [ { "timestamp" : "07/06/2012 13:30", ... }, { "timestamp" : "07/06/2012 14:00", ... }

我有一堆对象,每个对象都有一个时间戳,我想按日期将它们分组到一个JSON对象中。最终目标如下:

myObject = {
    "06/07/2012" : [ 
        {
            "timestamp" : "07/06/2012 13:30",
            ...
        },
        {
            "timestamp" : "07/06/2012 14:00",
            ...
        }
    ],
    "07/07/2012 [...]
}
为了获取日期,我正在测试每个timestamp对象并使用:

var visitDate = new Date(parseInt(item.timestamp, 10));
visitDate.setHours(0);
visitDate.setMinutes(0);
visitDate.setSeconds(0);
…然后我用它来存储JSON对象的名称。这看起来很混乱,我相信应该有一种更简单的方法来做事情

欢迎提出建议

怎么样

或者,使用
.getDate()
.getMonth()
.getYear()

在我看来,如果你想按日期分组,你只需要访问日期,而不是设置日期。通过设置访问日期字段的方式,您可以比较它们并将它们分组,不是吗

在此处查看所有有趣的约会方法:


编辑:如果要将其保留为日期对象,只需执行以下操作:

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

Date的构造函数在解析字符串方面非常聪明(虽然不是没有大量的警告,但这应该可以非常一致地工作),因此使用旧日期并在没有任何时间的情况下将其打印到日期将产生与原始帖子中相同的效果。

如果您不介意创建一个额外的Date对象,您可以尝试:

var tempDate = new Date(parseInt(item.timestamp, 10));
var visitDate = new Date (tempDate.getUTCFullYear(), tempDate.getUTCMonth(), tempDate.getUTCDate());
我做了一些非常类似的事情来获取当前月份的日期,但没有时间。

var today=新日期();
var year=today.getFullYear();
var mes=today.getMonth()+1;
var dia=today.getDate();
var fecha=dia+“-”+mes+“-”+年;
控制台日志(fecha)
let date=新日期((新日期(“07/06/2012 13:30”)).toDateString()

console.log(date)
注意:向下滚动一点以查找方法的完整列表。toString有这么多的变体,你的头会跳出来的。这可能是一个更明智的方法,我想把它作为一个日期对象,尽管我猜它在JSON中存储为文本!不使用
.toDateString()
的最初原因是不确定字段中是否有空格。尽管reallyoh
.valueOf()
,但不要认为这很重要-这也很有用!谢谢很乐意帮忙。如果你愿意,我编辑了这个问题,以提供一种将它们作为日期对象的方法,如果它适合你的fancyI无法想象的新日期(parseInt(“07/06/2012 13:30”,10))将起作用。或者我遗漏了什么?是的,你是对的-对不起,这是从我现有的一些代码中粘贴出来的,没有校对!当前代码将时间戳存储为“从历元开始的毫秒”格式,因此在其原始上下文中更有意义…您应该始终使用
.toISOString()
存储日期。您将遇到时区使用字符串存储日期的问题。你唯一想使用这种格式的时候是在你显示它的时候。你是正确的@justin.m.chase-现在你应该这样做。在编写这个问题时,我们仍然必须支持IE8,它不支持
toISOString()
。哈利路亚,我们现在生活在一个现代世界!我想应该是getUTCDate。getUTCDay返回一周中的某一天(0,6)。getUTCDate返回当月的日期(1,31)