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

Pau*_*aul 23 javascript date

我有一堆对象,每个对象都有一个时间戳,我希望按日期分组到JSON对象中.最终目标是这样的:

myObject = {
    "06/07/2012" : [ 
        {
            "timestamp" : "07/06/2012 13:30",
            ...
        },
        {
            "timestamp" : "07/06/2012 14:00",
            ...
        }
    ],
    "07/07/2012 [...]
}
Run Code Online (Sandbox Code Playgroud)

要获取日期,我正在测试每个时间戳对象并使用:

var visitDate = new Date(parseInt(item.timestamp, 10));
visitDate.setHours(0);
visitDate.setMinutes(0);
visitDate.setSeconds(0);
Run Code Online (Sandbox Code Playgroud)

..然后我用它来存储JSON对象的名称.这看起来很混乱,我确信应该有一种更简单的做事方式.

建议/建议欢迎!!

Nic*_*ick 46

怎么样.toDateString()

另外,使用.getDate(),.getMonth().getYear()

在我看来,如果你想按日期分组,你只想访问日期,而不是设置日期.通过一些设置方式访问日期字段,您可以比较它们并将它们组合在一起,不是吗?

在这里查看所有有趣的日期方法:MDN Docs


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

var newDate = new Date(oldDate.toDateString());
Run Code Online (Sandbox Code Playgroud)

日期的构造函数非常聪明地解析字符串(虽然不是没有大量的警告,但这应该非常一致),所以使用旧日期并将其打印到没有任何时间的日期将导致您在原帖.


小智 23

new Date().toISOString().split('T')[0]
Run Code Online (Sandbox Code Playgroud)


Jam*_*ino 9

如果您不介意创建额外的日期对象,可以尝试:

var tempDate = new Date(parseInt(item.timestamp, 10));
var visitDate = new Date (tempDate.getUTCFullYear(), tempDate.getUTCMonth(), tempDate.getUTCDate());
Run Code Online (Sandbox Code Playgroud)

我做了一些非常类似的事情,没有时间得到当月的日期.

  • 我认为它应该是getUTCDate.getUTCDay返回星期几(0,6).getUTCDate返回月中的某一天(1,31) (3认同)

小智 7

var today = new Date();
var year = today.getFullYear();
var mes = today.getMonth()+1;
var dia = today.getDate();
var fecha =dia+"-"+mes+"-"+year;
console.log(fecha);
Run Code Online (Sandbox Code Playgroud)