使用 JavaScript 计算过去的日期

JavaScriptJavaScriptBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,我们将深入学习 JavaScript 编程,并创建一个名为 daysAgo 的函数。该函数接受一个数字作为输入,并计算从今天起 n 天前的日期。我们将使用 Date 构造函数以及各种方法,如 Math.abs()Date.prototype.setDate(),来完成此任务,并以 yyyy-mm-dd 格式的字符串返回结果。在本实验结束时,你将对在 JavaScript 中处理日期有更深入的理解。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/cond_stmts("Conditional Statements") subgraph Lab Skills javascript/variables -.-> lab-28253{{"使用 JavaScript 计算过去的日期"}} javascript/data_types -.-> lab-28253{{"使用 JavaScript 计算过去的日期"}} javascript/arith_ops -.-> lab-28253{{"使用 JavaScript 计算过去的日期"}} javascript/comp_ops -.-> lab-28253{{"使用 JavaScript 计算过去的日期"}} javascript/cond_stmts -.-> lab-28253{{"使用 JavaScript 计算过去的日期"}} end

用于计算过去日期的 JavaScript 函数

以下是一个 JavaScript 函数,它可以计算从今天起 n 天前的日期,并以 yyyy-mm-dd 格式的字符串返回:

const daysAgo = (n) => {
  const today = new Date();
  const daysAgoDate = new Date(today.setDate(today.getDate() - Math.abs(n)));
  return daysAgoDate.toISOString().split("T")[0];
};

其工作原理如下:

  • 使用 Date 构造函数获取当前日期。
  • 使用 Math.abs() 函数确保天数为正数。
  • 使用 Date.prototype.getDate() 函数获取当前日期的月份中的日期。
  • 使用 Date.prototype.setDate() 函数相应地更新日期。
  • 使用 Date.prototype.toISOString() 函数将结果日期以 yyyy-mm-dd 格式作为字符串返回。

示例用法:

daysAgo(20); // "2020-09-16" (如果当前日期是 2020-10-06)

总结

恭喜你!你已完成“过去日期”实验。你可以在 LabEx 中练习更多实验以提升技能。