首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取特定日期的明天日期

如何获取特定日期的明天日期
EN

Stack Overflow用户
提问于 2021-08-21 07:52:35
回答 3查看 76关注 0票数 0

我正在尝试使用JavaScript in format (yyyy-mm-dd)获取特定日期的明天日期。例如,具体的日期是2021-08-31,我得到了这个脚本:

代码语言:javascript
复制
var date  = "2021-08-31"
date = new Date(date.split("-")[0],date.split("-")[1],date.split("-")[2]) 
date.setDate(date.getDate() + 1);
var tomorrows_date_month = date.getMonth()
var tomorrows_date_day = date.getDate()
var tomorrows_date_year = date.getFullYear()
console.log(tomorrows_date_year + "-" + tomorrows_date_month + "-" + tomorrows_date_day)

预期输出为:

代码语言:javascript
复制
2021-09-01

但是这段代码的输出是:

代码语言:javascript
复制
2021-9-2
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-08-21 08:00:50

在内部,js月份存储为0到11之间的值,因此您需要将date.split("-")[1]减去1。否则,javascript会认为您的月份实际上是9月,我们知道"2021-09-32“被翻译为"2021-10-2",因此日期显示为"2”。

代码语言:javascript
复制
var date  = "2021-08-31"
date = new Date(date.split("-")[0],date.split("-")[1] - 1,date.split("-")[2]) 
date.setDate(date.getDate() + 1)
var tomorrows_date_month = date.getMonth() + 1
var tomorrows_date_day = date.getDate()
var tomorrows_date_year = date.getFullYear()
console.log(tomorrows_date_year + "-" + tomorrows_date_month + "-" + tomorrows_date_day)

还要注意,对于将字符串转换为Date对象,date = new Date("2021-08-31")就足够了。

票数 0
EN

Stack Overflow用户

发布于 2021-08-21 08:08:21

首先,您不需要将拆分的"2021-08-31"用作date参数,因此只需使用new Date("2021-08-31");

第二个注意,如果长度小于2,则需要使用d.getMonth() + 1并添加前导零

试试这个:

代码语言:javascript
复制
function formatDate(date) {
    var d = new Date(date),
        month = '' + (d.getMonth() + 1),
        day = '' + d.getDate(),
        year = d.getFullYear();

    if (month.length < 2) 
        month = '0' + month;
    if (day.length < 2) 
        day = '0' + day;

    return [year, month, day].join('-');
}

Date.prototype.addDays = function(days) {
    var date = new Date(this.valueOf());
    date.setDate(date.getDate() + days);
    return date;
}

var date  = "2021-08-31"

var date1 = new Date(date);

console.log(formatDate(date1.addDays(1)));

票数 2
EN

Stack Overflow用户

发布于 2021-08-21 08:06:25

代码语言:javascript
复制
new Date(new Date(date + 'T00:00Z').getTime() + 86400000).toISOString().substr(0, 10)

添加的'T00:00Z'确保日期被解析为协调时,以匹配toISOString()使用的协调时区。添加86400000 (一天中的毫秒数)会使日期提前,而不必直接处理日期字段。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68871146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档