Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
递增JavaScript中的ISO日期字符串(例如';2014-03-30';->;';2014-03-31';)_Javascript - Fatal编程技术网

递增JavaScript中的ISO日期字符串(例如';2014-03-30';->;';2014-03-31';)

递增JavaScript中的ISO日期字符串(例如';2014-03-30';->;';2014-03-31';),javascript,Javascript,我的问题类似于,但我需要处理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” 然而,get

我的问题类似于,但我需要处理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”)


有人知道为什么会发生这种情况以及如何解决吗?

这是由于当天发生的夏令时调整造成的

改为使用UTCDate进行修复:

var getNextDay = function(day) {
    var date = new Date(day);
    date.setUTCDate(date.getUTCDate() + 1);
    return date.toISOString().slice(0, 10);
};

请尝试
setUTCDdate
getUTCDate
。这似乎是一个夏时制的时间问题。