20

你知道在javascript中更改日期对象时间的优雅方法吗

奇怪的是那些返回 Number 对象的设置器

var date = new Date().setHours(0,0,0,0);

日期是数字而不是日期..

所以假设我有一个日期 var date = new Date()

我想改变时间

谢谢

4

5 回答 5

24
var date = new Date();
date.setHours( 0,0,0,0 );

setHours()实际上有两个作用:

  1. 它修改它应用到的对象
  2. 它返回该日期对象的新时间戳

因此,在您的情况下,只需创建对象并在之后单独设置时间。如果不需要,您可以完全忽略返回值。

于 2012-12-06T10:02:20.197 回答
6
// Create date.  Left empty, will default to 'now'
var myDate = new Date();

// Set hours
myDate.setHours(7);

// Then set minutes
myDate.setMinutes(15);

// Then set seconds
myDate.setSeconds(47);
于 2012-12-06T10:01:50.087 回答
2
var date = new Date()
date.setUTCHours(15,31,01);

这将返回 15::31:01 的时间

更多信息在这里

于 2012-12-06T10:05:51.723 回答
1

这样做的方法,例如获取当天的午夜:-

var date = new Date(); // Datetime now
date.setHours(0, 0, 0, 0);
console.log(date); // Midnight today 00:00:00.000

setHours函数返回时间戳而不是Date对象,但它会修改原始Date对象。

时间戳可用于初始化新的日期对象并执行算术运算。

var timestamp = new Date().setHours(0, 0, 0, 0);
var date = new Date(timestamp); // Midnight today 00:00:00.000
var hourBeforeMidnight = timestamp - (60 * 60 * 1000);
var otherDate = new Date(hourBeforeMidnight); // Date one hour before

时间戳与调用getTime.

var timestamp = date.getTime();
于 2012-12-06T10:02:55.210 回答
1

此代码段会将时间转换为 0:0:0,如果您要过滤一天中的第零个小时的数据,则需要此时间。对日期上的 ODATA 过滤很有用

                    var a = new Array();
					var b = new Array();
					var c = new Array();
					var date = new Date().toJSON();
					a = date.split("T");
					a = a[0];
					b = a.split("-");
					var currentDate = new Date(b[0],b[1] - 1, b[2] + 1 ,-19,30,0).toJSON();
					c = currentDate.split(".");
					var newDate = c[0];
console.log(newDate);

于 2016-11-03T06:42:36.033 回答