JavaScript-从日期对象中删除毫秒

时间:2018-10-28 15:15:34

标签: javascript date

我正在尝试获取下一个星期日的日期(并将时间设置为上午9点:

var sun = new Date();
sun.setDate(sun.getDate() + (7 - sun.getDay()));
sun.setHours(9);
sun.setMinutes(0);
sun.setSeconds(0);
console.log(sun.toISOString());

这就是我得到的:

  2018-11-04T09:00:00.722Z

我唯一不需要的是.722(API不会接受)

2018-11-04T09:00:00Z

如何删除.722位?

5 个答案:

答案 0 :(得分:4)

尝试使用String.prototype.split()toISOString().分开,获取 0th 索引,并将文字Z与输出连接起来。这样,您可以简单地忽略包含毫秒值的 1st 索引。希望这会有所帮助:)

var sun = new Date();
sun.setDate(sun.getDate() + (7 - sun.getDay()));
sun.setHours(9);
sun.setMinutes(0);
sun.setSeconds(0);
console.log(sun.toISOString().split('.')[0]+"Z");

答案 1 :(得分:2)

一个选项可能是在生成时间戳字符串后对其进行正则表达式替换:

var ts = "2018-11-04T09:00:00.722Z";
console.log(ts);
ts = ts.replace(/\.\d+/, "");
console.log(ts);

答案 2 :(得分:2)

您可以在Date对象上使用setMilliseconds来设置所需的毫秒数。

var sun = new Date();
sun.setDate(sun.getDate() + (7 - sun.getDay()));
sun.setHours(9);
sun.setMinutes(0);
sun.setSeconds(0);
sun.setMilliseconds(0);
console.log(sun.toISOString());

答案 3 :(得分:1)

另一种选择:

var date = new Date();
date.setMilliseconds(0);
var dateISOString = date.toISOString().replace(".000Z", "Z");

console.log(dateISOString);

输出:

<块引用>

2021-06-16T10:08:41Z

答案 4 :(得分:0)

您所看到的毫秒数,也可以如下删除。另外,您只能使用.setHours()删除分钟和秒。

var sun = new Date();
sun.setDate(sun.getDate() + (7 - sun.getDay()));
sun.setHours(9,0,0,0)
console.log(sun.toISOString().slice(0,-5) + 'Z');