首頁 >web前端 >js教程 >如何可靠地驗證 JavaScript 日期實例?

如何可靠地驗證 JavaScript 日期實例?

Patricia Arquette
Patricia Arquette原創
2024-12-11 02:06:10277瀏覽

How Can I Reliably Validate JavaScript Date Instances?

在 JavaScript 中驗證日期實例的有效性

確定 JavaScript 中日期實例的有效性可能具有挑戰性。讓我們探討 「無效日期」 問題,並找到可靠偵測無效 Date 物件的解決方案:

Date 物件是表示特定時刻的 JavaScript 建構。從無效日期字串建立 Date 實例時會出現問題,如下例所示:

var d = new Date("foo");

此程式碼產生一個「無效日期」實例,該實例是 object 類型並繼承自 Date 原型。但是,Object.prototype.toString.call(d) 傳回“[object Date]”,並且 d instanceof Date 的計算結果為 true。

解決方案:

這裡有一個檢查有效Date 實例的簡單方法:

if (Object.prototype.toString.call(d) === "[object Date]") {
  if (isNaN(d.getTime())) {
    // Invalid Date
  } else {
    // Valid Date
  }
} else {
  // Not a Date object
}

此方法確保該實例是Date 對象,且它的時間值不是NaN。如果任一條件失敗,則 Date 實例視為無效。

更新 [2018-05-31]:

對於來自外部上下文的 Date物件不是擔心,可以使用更簡單的驗證函數:

function isValidDate(d) {
  return d instanceof Date && !isNaN(d);
}

注意[2021-02-01]:

需要注意的是,「無效日期」和「無效日期物件」之間是有區別的。這個答案的重點是驗證日期實例,而不是日期輸入字串。

以上是如何可靠地驗證 JavaScript 日期實例?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn