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