【问题标题】:Getting Date + 30 days in Typescript在 Typescript 中获取日期 + 30 天
【发布时间】:2022-12-07 00:41:38
【问题描述】:

我是 Typescript 的新手,并试图以下面指定的 newDate 格式获取日期 + (X) 从现在起的月数或天数...

当我尝试添加一个月时:

var dateObj = new Date();
var month = dateObj.getUTCMonth() + 2;
var day = dateObj.getUTCDate();
var year = dateObj.getUTCFullYear();

var newDate = month + "/" + day + "/" + year;

它返回:

13/6/2022

当我尝试添加 30 天时:

var dateObj = new Date();
var month = dateObj.getUTCMonth() + 1;
var day = dateObj.getUTCDate() + 30;
var year = dateObj.getUTCFullYear();

var newDate = month + "/" + day + "/" + year;

它返回这个:

12/36/2022

因此,示例中不仅月份和日期不正确,而且年份也不提前。

有任何想法吗?

【问题讨论】:

    标签: typescript datetime


    【解决方案1】:

    在不使用 Moment 或任何其他库的情况下,您可以使用 setDate()getDate() 函数来操作 dateObj 的值:

    // hard-coded date to illustrate automatic handling of year/month change
    var dateObj = new Date('2022-12-06');
    
    // add 30 days
    dateObj.setDate(dateObj.getDate() + 30); // 2023-01-05
    
    var month = dateObj.getUTCMonth() + 1;
    var day = dateObj.getUTCDate();
    var year = dateObj.getUTCFullYear();
    
    var newDate = month + "/" + day + "/" + year;
    
    console.log(newDate)

    请注意它如何自动为您自动更改月份和年份。

    【讨论】:

    • 这是一个很好/简单的解决方案(删除了我关于使用力矩的回答)。
    【解决方案2】:

    只需使用setSate() 函数设置日期。

    var future = new Date();
    future.setDate(future.getDate() + X_DAYS);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-23
      • 2014-11-20
      • 2015-09-27
      • 1970-01-01
      • 2019-11-15
      • 1970-01-01
      • 2016-04-20
      • 2017-07-06
      相关资源
      最近更新 更多