JavaScript 中格式化日期

Harshit Jindal 2023年10月12日
  1. 在 JavaScript 中使用 toTimeString() 格式化 JavaScript 数据
  2. 在 JavaScript 中使用 toUTCString() 格式化 JavaScript 数据
  3. 在 JavaScript 中使用 toDateString() 格式化 JavaScript 数据
  4. 在 JavaScript 中使用 toLocaleString() 格式化 JavaScript 数据
  5. 在 JavaScript 中使用 toLocaleTimeString() 格式化 JavaScript 数据
  6. 在 JavaScript 中使用自定义函数格式化日期
  7. Moment.js 包与 Node.js 一起使用以格式化 JavaScript 中的日期
  8. dateformat 包与 Node.js 一起使用
JavaScript 中格式化日期

本教程说明了如何格式化 JavaScript 日期。

我们可以使用 JavaScript Date 对象获取当前日期和时间。我们可以通过编写自己的自定义函数并使用诸如 moment.js 之类的库来格式化日期。

首先,我们使用 Date 对象创建一个名为 date 的变量,以获取当前日期和时间。

var date = new Date();

我们将显示应用于该变量的所有格式化函数的结果。

在 JavaScript 中使用 toTimeString() 格式化 JavaScript 数据

toTimeString() 有助于从 date 变量中仅提取包含有关时间信息的字符串。

var date = new Date();
result = date.toTimeString();
console.log(result);

输出:

"20:07:37 GMT+0100 (Central European Standard Time)"

在 JavaScript 中使用 toUTCString() 格式化 JavaScript 数据

此方法从变量中存储的当前国家/地区的时间返回格林威治标准时间或世界标准时间。

var date = new Date();
result = date.toUTCString();
console.log(result);

输出:

"Thu, 18 Mar 2021 19:09:40 GMT"

在 JavaScript 中使用 toDateString() 格式化 JavaScript 数据

此方法提取日期并以字符串形式返回它。

var date = new Date();
result = date.toDateString();
console.log(result);

输出:

"Thu Mar 18 2021"

在 JavaScript 中使用 toISOString() 格式化 JavaScript 数据

它以 ISO 8601 格式返回包含日期/时间的字符串。

var date = new Date();
result = date.toISOString();
console.log(result);

输出:

"2021-03-18T19:11:35.957Z"

在 JavaScript 中使用 toLocaleString() 格式化 JavaScript 数据

它将使用语言环境设置将日期对象转换为字符串。

var date = new Date();
result = date.toLocaleString();
console.log(result);

输出:

"3/18/2021, 8:13:03 PM"

在 JavaScript 中使用 toLocaleTimeString() 格式化 JavaScript 数据

它将日期对象转换为字符串,但只提取时间,使用本地设置。

var date = new Date();
result = date.toLocaleTimeString();
console.log(result);

输出:

"8:14:22 PM"

在 JavaScript 中使用自定义函数格式化日期

日期格式 dd-mm-yyyydd-mm-yyyy 及类似格式

我们使用 getDate()getMonth()getFullYear() 方法来获取日期的各个部分,并使用所需的符号和所需的顺序将其连接起来。

例如,我们可以通过编写下面的自定义函数来获得 dd/mm/yyyydd-mm-yyyymm/yyyy 等任何我们喜欢的方式。

var date = new Date();
const formatDate = (date) => {
  let formatted_date =
      date.getDate() + '-' + (date.getMonth() + 1) + '-' + date.getFullYear()
  return formatted_date;
} console.log(formatDate(date));

输出:

"18-3-2021"

我们还可以在日期字符串中放入月份名称,例如 JanuaryFebruaryMarch

var date = new Date();
const months = [
  'JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV',
  'DEC'
];

const formatDate = (date) => {
  let formatted_date =
      date.getDate() + '-' + months[date.getMonth()] + '-' + date.getFullYear()
  return formatted_date;
} console.log(formatDate(date));

输出:

"18-MAR-2021"

日期格式 yyyy-mm-dd hh:mm:ss 和类似的格式

我们使用所有方法 getDate()getMonth()getFullYear()getHour()getminutes()getsecond() 来分别获取日期和时间的各个部分,以及使用我们想要的符号和我们想要的顺序将它们连接起来。

var date = new Date();

const formatDate =
    (current_datetime) => {
      let formatted_date = current_datetime.getFullYear() + '-' +
          (current_datetime.getMonth() + 1) + '-' + current_datetime.getDate() +
          ' ' + current_datetime.getHours() + ':' +
          current_datetime.getMinutes() + ':' + current_datetime.getSeconds();
      return formatted_date;
    }

                          console.log(formatDate(date));

输出:

"2021-3-18 20:21:2"

Moment.js 包与 Node.js 一起使用以格式化 JavaScript 中的日期

它被认为是 JavaScript 中最好的日期和时间库。它简单易用,不需要记住并构建所有这些不同的功能。用户可以根据自己的格式需求轻松编写字符串模板。

const moment = require('moment');
let m = moment();
m.format('[Time: ] h:mm:ss a');  // output of the form `Time: 11:39:03 pm`

上面的代码演示了 moment.js 允许我们使用 Node REPL 格式化日期和时间的方式之一。

dateformat 包与 Node.js 一起使用

另一个像 Moment.js 一样的软件包可以帮助我们格式化日期。它可以与 Node.js浏览器端 JavaScript 一起使用。它通过包含 .format() 方法来扩展 Date 对象。

浏览器端

Day = new Date();
Day.format('dd-m-yy');  // Returns '16-3-21'

上面的代码显示了将 dateformat 包与 Date 对象一起使用的简便性。

Node.js

const dateformat = require('dateformat');
let now = new Date();
dateformat(now, 'dddd, mmmm dS, yyyy, h:MM:ss TT');  // returns 'Tuesday, March
                                                     // 16th, 2021, 11:32:08 PM'

上面的代码演示了如何使用 dateformat 包通过 Node REPL 格式化日期。

作者: Harshit Jindal
Harshit Jindal avatar Harshit Jindal avatar

Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.

LinkedIn

相关文章 - JavaScript Date