当前位置: 首页 > 知识库问答 >
问题:

如何在Javascript中减去两个日期并在特定日期上添加天数

谢涵亮
2023-03-14

如何减去上述格式的两个javascript日期,并知道它们之间的天数,然后以dd/月/年格式返回结果。另外,我想添加180days到date1,并以dd/月/年格式输出结果?谢谢你的帮助。

共有1个答案

司空海荣
2023-03-14

如果您看一下JavaScript中的Date对象及其方法和属性,您会注意到JavaScript自1970年以来一直以毫秒为时间基础。

知道可以通过添加或减去毫秒轻松修改日期。

/**
 * subtractDateFromDate
 * Use the millisecond value insert both elements to calculate a new date.
 * @param d1 {Date}
 * @param d2 {Date}
 */
function subtractDateFromDate(d1, d2) {
    return new Date(d1.getTime() - d2.getTime());
}
/**
 * addDaysToDate
 * Create a new Date based on the milliseconds of the first date,
 * adding the milliseconds for the extra days specified.
 * Notice that days can be a negative number.
 * @param d {Date}
 * @param days {number}
 */
function addDaysToDate(d, days) {
    var oneDayInMilliseconds = 86400000;
    return new Date(d.getTime() + (oneDayInMilliseconds * days));
}

并格式化不带moment.js的日期:

/**
 * formatDate
 * returns a string with date parameters replaced with the date objects corresponding values
 * @param d {Date}
 * @param format {string}
 */
function formatDate(d, format) {
    if (format === void 0) { format = "!d!/!m!/!y!"; }
    return format
        .replace(/!y!/ig, d.getFullYear().toString())
        .replace(/!m!/ig, (d.getMonth() + 1).toString())
        .replace(/!d!/ig, d.getDate().toString());
}
//Testing
var d = new Date();
console.log("d/m/y:", formatDate(d, "!d!/!m!/!y!"));
console.log("m/d/y:", formatDate(d, "!m!/!d!/!y!"));
console.log("It was the d of m, y:", formatDate(d, "It was the !d! of !m!, !y!"));
 类似资料:
  • 问题内容: 我想让用户使用JavaScript轻松添加和减去日期,以便按日期浏览其条目。 日期的格式为:“ mm / dd / yyyy”。我希望他们能够单击“下一步”按钮,并且如果日期为:“ 06/01/2012”,则在单击下一步时,它应该变为:“ 06/02/2012”。如果他们单击“上一个”按钮,则该按钮将变为“ 05/31/2012”。 它需要跟踪of年,每月的天数等。 有任何想法吗? 使

  • 我想让用户使用JavaScript轻松加减日期,以便按日期浏览条目。 日期的格式是:“mm/dd/yyyy”。我希望他们能够点击“下一步”按钮,如果日期是:“06/01/2012”,那么点击下一步,它应该变成:“06/02/2012”。如果他们点击“prev”按钮,那么它应该变成“05/31/2012”。 它需要跟踪闰年、一个月中的天数等。 有什么想法吗? P.S使用AJAX从服务器获取日期不是一

  • 问题内容: 想要改善这篇文章吗? 提供此问题的详细答案,包括引文和答案正确的解释。答案不够详细的答案可能会被编辑或删除。 有谁知道约会(例如今天)和回溯X天的简单方法吗? 因此,例如,如果我想计算今天之前5天的日期。 问题答案: 尝试这样的事情: 请注意,这将修改日期对象并返回更新日期的时间值。

  • 问题内容: 我的心脏必须深入到减去两个日期以计算出天数后,内部开始流血: .NET或你命名的任何现代语言中只有两行代码。 这对Java不好吗?还是我应该知道一个隐藏的方法? 可以在util中使用Date类而不使用GregorianCalendar吗?如果是这样,我是否应该提防像1970年这样的细微事情? 谢谢 问题答案: 这确实是标准Java API中最大的史诗失败之一。有一点耐心,那么你将获得J

  • 我JasperReport中有这样的代码,就像< code > new simple date format(" DD/MM/yyyy ")。format(new Date())-24 * 3600 * 1000 但是它不起作用,我正在尝试从今天开始减去一天。但它是这样显示今天的

  • 我想知道在FreeMarker中从今天的日期减去日期的最好方法是什么? 我有一个用户的注册日期在这种格式:2015-06-15 05:12:35.890,我要做的是得到他们注册到现在之间的年数。(全年,不需要1年6个月/1.5年为例) 谁能告诉我做这件事的最好方法吗?