JavaScript 中格式化日期
- 
          
            在 JavaScript 中使用 
toTimeString()格式化 JavaScript 資料 - 
          
            在 JavaScript 中使用 
toUTCString()格式化 JavaScript 資料 - 
          
            在 JavaScript 中使用 
toDateString()格式化 JavaScript 資料 - 
          
            在 JavaScript 中使用 
toLocaleString()格式化 JavaScript 資料 - 
          
            在 JavaScript 中使用 
toLocaleTimeString()格式化 JavaScript 資料 - 在 JavaScript 中使用自定義函式格式化日期
 - 
          
            將 
Moment.js包與Node.js一起使用以格式化 JavaScript 中的日期 - 
          
            將 
dateformat包與Node.js一起使用 
本教程說明了如何格式化 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 格式化日期。
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