HOWTO · JavaScript

JavaScript 中格式化日期

本教程介紹如何格式化 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-yyyy 或 dd-mm-yyyy 及類似格式

我們使用 getDate()、getMonth() 和 getFullYear() 方法來獲取日期的各個部分,並使用所需的符號和所需的順序將其連線起來。

例如,我們可以通過編寫下面的自定義函式來獲得 dd/mm/yyyy、dd-mm-yyyy 和 mm/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"

我們還可以在日期字串中放入月份名稱,例如 January,February,March。

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 格式化日期。