javascript - 2017-03-26 上的 Javascript 奇怪的日期行为。不能增加一天。为什么?
问题描述
下面的代码片段是怎么回事?我正在尝试将字符串数组构建为从过去一天开始的日期。例如,我能够在整个 2019 年做到这一点。但是当我以2017-01-01
某种方式开始时,我不能增加过去的日期2017-03-26
。
我可以2017-03-27
毫无问题2017-03-28
地增加。为什么会这样?
const currentDay = "2017-01-01";
const nextDay = new Date(new Date(currentDay).setDate(new Date(currentDay).getDate() + 1)).toISOString().split("T")[0];
console.log('currentDay: ' + currentDay);
console.log('nextDay: ' + nextDay);
const currentDay2 = "2017-03-26";
const nextDay2 = new Date(new Date(currentDay2).setDate(new Date(currentDay2).getDate() + 1)).toISOString().split("T")[0];
console.log('currentDay2: ' + currentDay2);
console.log('nextDay2: ' + nextDay2 + '<------ DOES NOT INCREMENT');
const currentDay3 = "2017-03-27";
const nextDay3 = new Date(new Date(currentDay3).setDate(new Date(currentDay3).getDate() + 1)).toISOString().split("T")[0];
console.log('currentDay3: ' + currentDay3);
console.log('nextDay3: ' + nextDay3);
我认为这不是我的环境的问题,但无论如何,这就是我得到的:
你们有什么不一样的吗?
解决方案
发表评论的代码很长,所以决定做一个答案:
const currentDay2 = "2017-03-26";
let [y,M,d] = currentDay2.split(/[-]/);
const nextDay2 = new Date(y, (+M - 1), ++d).toISOString();
console.log(nextDay2);
推荐阅读
- xslt - XSLT document() 函数 - for 循环表不起作用
- r - 在 Keras 中置换成本函数
- javafx - JavaFX 尝试使用自定义 FXML 组件的空指针
- android - 第一项中心在 RecyclerView 的 SnapHelper 中对齐
- python - 使用python将所有文件连接到一个目录中
- python - 在正文上使用 json 请求
- xpath - 为什么 Xpath 3.0 可以工作,但 Xquery 3.0 不能使用相同的表达式
- ruby-on-rails - RSpec + 表单对象 + 简单表单给出未定义的方法
- react-native - React-native-maps 安装失败
- sql - SQL Server 行计数在同一个表中多次返回内部联接