使用 .toISOString() 什么都不做转换日期?

Converting date using .toISOString() doing nothing?

这让我很头疼,我不知道为什么会这样 - 希望有一些见解。

这适用于将当前日期和时间转换为 ISO8601 格式:

var today = new Date().toISOString();
console.log(today);

但是,如果我在转换之前更改创建日期,该方法将失败。是因为创建日期必须用这个方法吗?

var tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);
tomorrow.toISOString();
console.log(tomorrow);

输出将是明天日期的未转换日期字符串(+1 只是在创建日期后将日期递增 1)。

看在上帝的份上,为什么!?

你只是记录了错误的东西。您应该记录 tomorrow.ToISOString() 而不是 tomorrow:

var tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);
console.log(tomorrow.toISOString());

输出:

2015-11-06T11:29:31.136Z

toISOString()returns一个String,但不改变原来的对象。

而不是做...

...
tomorrow.toISOString();
console.log(tomorrow);

随心所欲

console.log(tomorrow.toISOString());