使用.toISOString()无效转换日期?

时间:2015-11-05 11:25:27

标签: javascript date datetime iso8601

这是我的头脑,而且我不知道它为什么会发生 - 会喜欢一些见解。

这适用于将当前日期和时间转换为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)。

为了上帝的爱,为什么!?

2 个答案:

答案 0 :(得分:2)

toISOString()返回String,但不会更改原始对象。

而不是......

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

只做

console.log(tomorrow.toISOString());

答案 1 :(得分:1)

你只是记错了。您应该记录tomorrow.ToISOString()而不是tomorrow

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

输出:

  

2015-11-06T11:29:31.136Z