首頁 >web前端 >js教程 >如何可靠地偵測 JavaScript 中的無效日期實例?

如何可靠地偵測 JavaScript 中的無效日期實例?

Linda Hamilton
Linda Hamilton原創
2024-12-10 15:04:11365瀏覽

How Can I Reliably Detect Invalid Date Instances in JavaScript?

JavaScript 中的無效日期實例偵測

由於存在「無效日期」實例,驗證 JavaScript 中的日期物件可能具有挑戰性。這些物件看起來有效(instanceof Date 傳回 true),但代表無效日期。本文探討了檢測此類實例的各種方法。

原始問題

提供的代碼演示了該問題:

var d = new Date("foo");
console.log(d.toString()); // shows 'Invalid Date'
console.log(typeof d); // shows 'object'
console.log(d instanceof Date); // shows 'true'

推薦解決方案

1.使用Date.parse()進行驗證

Date.parse 解析日期字串並傳回有效日期,如果字串無效則傳回 NaN。這可用於在建立Date 物件之前驗證日期字串:

if (Date.parse("foo") === NaN) {
  // invalid date string
}

2.測試NaN 時間值

對於現有的Date 實例,您可以測試時間值(getTime() 或valueOf()):

if (isNaN(d.getTime())) {
  // invalid Date object
}

此方法依賴ECMA -262 規範,規定無效的 Date 物件具有 NaN 時間值。

首選代碼

根據這些建議,可以使用以下函數來驗證Date 實例:

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

替代方法

替代方法
function isValidDate(d) {
  return d instanceof Date && !isNaN(d);
}

替代方法

替代方法 如果您不關心來自外部JS 上下文的Date對象,這種更簡單的形式可能是首選:注意此答案側重於驗證日期實例,但需要注意的是,它不涵蓋日期輸入本身的有效性(例如, 2013-13-32).

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

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