JavaScript 中的字串轉日期
本文將討論如何在 JavaScript 中將字串值轉換為 Date 物件。有兩種方法可以實現這一點:
使用 Date 類建構函式 - 此建構函式接受表示日期值的字串值,將其轉換為 Date 物件,並返回結果。
使用 Date.parse() 方法 - 與 Date 建構函式相同,此方法接受字串值,解析並以毫秒形式返回日期值。
讓我們透過示例來看看這些解決方案:
使用 Date() 建構函式
將字串轉換為日期物件最常用的方法是使用Date()類的建構函式。以下是 Date 建構函式的語法:
var date = new Date('date_string');
它接受各種形式的引數。
新的Date()返回當前系統日期和時間,包括本地系統的時區資訊。如果您沒有在新 Date() 函式中傳遞引數。
將日期物件作為引數傳遞。新的Date()將返回由作為引數傳遞的日期字串呈現的日期物件。
當我們將字串格式的日期傳遞給新的Date()時,它將被轉換為日期物件。為了使其工作,字串格式需要為yyyy-mm-dd。其他日期格式可能無法透過此方法轉換為日期物件。
示例
在這個例子中,我們檢查哪個日期格式在Date類的建構函式中有效。
<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
</head>
<body>
<script>
var date1 = new Date("2022-08-04"); // here we are taking yyyy-mm-dd format
var date2 = new Date("2022/08/03"); // here we are taking yyyy/mm/dd format
var date3 = new Date("2022-15-03"); // here we are taking yyyy/dd/mm format
var date4 = new Date("15-02-2022"); // here we are tacking dd/mm/yyyy format
document.write(date1 + "<br>");
document.write(date2 + "<br>");
document.write(date3 + "<br>");
document.write(date4 + "<br>");
</script>
</body>
</html>
注意 - 只有當新的 Date()符合ISO 8601 格式yyyy-mm-dd hh-mm-ss時,才能用於將字串轉換為日期。
使用 date.parse() 方法
Date.Parse()是轉換字串日期的另一種解決方案。它返回一個數值,而不是日期物件。因此,如果您期望得到一個日期物件,則需要進一步處理。
此方法將給定的日期轉換為表示毫秒的數值。返回值是從1970年1月1日午夜開始的毫秒數。它與時間戳格式相同,區別在於Date.parse()返回毫秒值,而不是秒值。
示例
在下面的示例中,我們將字串日期轉換為日期格式。但這裡的返回值是毫秒。
<!DOCTYPE html>
<html lang="en">
<body>
<p>Date.Parse Method</p>
<script>
var date1 = Date.parse("2022-08-04"); // here we are taking yyyy-mm-dd format
var date2 = Date.parse("2022/08/03"); // here we are taking yyyy/mm/dd format
var date3 = Date.parse("2022-15-03"); // here we are taking yyyy/dd/mm format
var date4 = Date.parse("15-02-2022"); // here we are tacking dd/mm/yyyy format
document.write(date1 + "<br>");
document.write(date2 + "<br>");
document.write(date3 + "<br>");
document.write(date4 + "<br>");
</script>
</body>
</html>
注意 -
Date.parse()與 new Date() 相同,除了返回型別不同,這使得它最適合檢查日期值是否具有正確的格式,也可以透過使用dateObj.setTime(Date.parse(DateString))來分配日期。
Date.Parse()返回毫秒,即使不將它們轉換為具有new Date()的實際日期物件,也可以用於精確比較日期。
示例
在下面的示例中,我們可以看到,當涉及到它可以接受的輸入值型別時,Date.parse()與 new Date()相同,但前提是日期格式有效。
尤其是在處理 API 響應值時。在這種情況下,我們可能需要執行檢查以確保後端返回的值確認 Date.parse() 或甚至 new Date() 函式接受的日期格式。只需一個isNaN()檢查就可以幫助識別並安全地進入日期轉換方法。
<!DOCTYPE html>
<html lang="en">
<body>
<p>Date.Parse Method and new Date() Method</p>
<script>
let stringsFromAPI = ["2022-08-04", "20-11-2022"];
stringsFromAPI.forEach((d) => {
if (!isNaN(Date.parse(d))) {
console.log(new Date(d));
}
});
</script>
</body>
</html>
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP