返回

用 JavaScript 实现日期时间操作的几种方式

前端

JavaScript 日期时间函数简介

JavaScript 内置了很多强大的函数来处理日期和时间,使用起来非常简单。我们可以使用 new Date() 函数来创建一个日期对象,然后使用该对象的各种方法来获取和操作日期和时间信息。

以下是一些常用的 JavaScript 日期时间函数:

  • new Date(): 创建一个新的日期对象,如果没有任何参数,则创建当前时间对应的日期对象。
  • Date.now(): 返回自 1970 年 1 月 1 日午夜(UTC)以来的毫秒数。
  • getDate(): 获取日期对象中的日期部分,范围从 1 到 31。
  • getMonth(): 获取日期对象中的月份部分,范围从 0 到 11。
  • getFullYear(): 获取日期对象中的年份部分。
  • getHours(): 获取日期对象中的小时部分,范围从 0 到 23。
  • getMinutes(): 获取日期对象中的分钟部分,范围从 0 到 59。
  • getSeconds(): 获取日期对象中的秒部分,范围从 0 到 59。
  • getMilliseconds(): 获取日期对象中的毫秒部分,范围从 0 到 999。
  • setDate(day): 设置日期对象中的日期部分。
  • setMonth(month): 设置日期对象中的月份部分。
  • setFullYear(year): 设置日期对象中的年份部分。
  • setHours(hours): 设置日期对象中的小时部分。
  • setMinutes(minutes): 设置日期对象中的分钟部分。
  • setSeconds(seconds): 设置日期对象中的秒部分。
  • setMilliseconds(milliseconds): 设置日期对象中的毫秒部分。

日期格式化

我们可以使用 toLocaleString() 方法来格式化日期对象。这个方法可以接受一个参数,该参数指定要使用的语言环境。如果我们不指定语言环境,则使用浏览器的默认语言环境。

以下是一些常用的语言环境:

  • en-US: 英语(美国)
  • zh-CN: 汉语(中国)
  • ja-JP: 日语(日本)
  • fr-FR: 法语(法国)
  • de-DE: 德语(德国)

我们可以使用以下代码来格式化日期对象:

const date = new Date();
console.log(date.toLocaleString());

这将输出当前时间,格式为 "2023-03-08 16:30:00"。

我们也可以使用 toLocaleDateString()toLocaleTimeString() 方法分别格式化日期和时间。

以下是一些常用的格式化选项:

  • year: 年份,可以是 2 位或 4 位。
  • month: 月份,可以是数字或文本。
  • day: 日期,可以是数字或文本。
  • hour: 小时,可以是 12 小时制或 24 小时制。
  • minute: 分钟。
  • second: 秒。
  • millisecond: 毫秒。

我们可以使用以下代码来格式化日期和时间:

const date = new Date();
console.log(date.toLocaleDateString()); // 输出: "2023-03-08"
console.log(date.toLocaleTimeString()); // 输出: "16:30:00"

时间戳转换与操作

时间戳是自 1970 年 1 月 1 日午夜(UTC)以来的毫秒数。我们可以使用 getTime() 方法来获取日期对象的时间戳。

以下是一些常用的时间戳操作:

  • timestamp + 1000: 将时间戳增加 1000 毫秒,即 1 秒。
  • timestamp - 1000: 将时间戳减少 1000 毫秒,即 1 秒。
  • new Date(timestamp): 将时间戳转换为日期对象。

我们可以使用以下代码来进行时间戳转换和操作:

const timestamp = new Date().getTime();
console.log(timestamp); // 输出: 1646799400000

const newDate = new Date(timestamp + 1000);
console.log(newDate); // 输出: "2022-03-08T16:30:01.000Z"

常见日期操作技巧

以下是一些常见的日期操作技巧:

  • 比较两个日期 : 我们可以使用 ><>=<===!= 运算符来比较两个日期对象。
  • 计算两个日期之间的差异 : 我们可以使用 getTime() 方法来计算两个日期对象之间的时间戳差异,然后将差异转换为天数、小时、分钟或秒。
  • 添加或减去天数、小时、分钟或秒 : 我们可以使用 setDate()setMonth()setFullYear()setHours()setMinutes()setSeconds() 方法来添加或减去天数、小时、分钟或秒。
  • 格式化日期 : 我们可以使用 toLocaleString()toLocaleDateString()toLocaleTimeString() 方法来格式化日期对象。
  • 解析日期 : 我们可以使用 Date.parse() 方法来解析日期字符串并将其转换为日期对象。

结语

JavaScript 提供了多种函数来处理日期和时间,我们可以使用这些函数来执行各种日期和时间操作。这些函数非常强大,可以满足我们大多数的日期和时间处理需求。