我的问题类似于this one,但我需要处理ISO字符串。
我试图从另一个问题调整解决方案:
var getNextDay = function(day) {
var date = new Date(day);
date.setDate(date.getDate() + 1);
return date.toISOString().slice(0, 10);
};
这实际上适用于大多数情况,例如getNextDay(' 2014-03-31')返回' 2014-04-01'。
然而,getNextDay(' 2014-03-30')给了我' 2014-03-30' (切片前的完整字符串是' 2014-03-30T23:00:00.000Z')
有谁知道为什么会这样,以及如何解决它?
答案 0 :(得分:1)
这是由该日期发生的夏令时调整引起的。 March 30, 2014: Europe starts Daylight Saving Time
使用UTCDate修复它:
var getNextDay = function(day) {
var date = new Date(day);
date.setUTCDate(date.getUTCDate() + 1);
return date.toISOString().slice(0, 10);
};