我正在尝试获取下一个星期日的日期(并将时间设置为上午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位?
答案 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');