我提出奇怪的問題:如何在創建無效日期對象時拋出錯誤?
var d = new Date("2016--01---01");
會沒有任何錯誤創建對象。其實,第一個問題是 - 爲什麼?
但後來我需要從這個對象獲得字符串 - 我試圖
d.toString(); // 'Invalid Date'
d.getTime(); // NaN
d.toJSON(); // null
它是什麼可能的方法來獲得字符串或檢查,這是不正確的?
我提出奇怪的問題:如何在創建無效日期對象時拋出錯誤?
var d = new Date("2016--01---01");
會沒有任何錯誤創建對象。其實,第一個問題是 - 爲什麼?
但後來我需要從這個對象獲得字符串 - 我試圖
d.toString(); // 'Invalid Date'
d.getTime(); // NaN
d.toJSON(); // null
它是什麼可能的方法來獲得字符串或檢查,這是不正確的?
你可以簡單地檢查它的有效的數字時轉換爲一個:
var ok = !isNaN(d);
(這種轉換是不是採取d.getTime()
相同)。
但要警告有效日期可能不是所需的日期。您通常使用經過驗證的日期格式。像moment.js這樣的圖書館可能會幫助你。
創建會拋出一個錯誤,如果給定的串產生的無效日期工廠類型的功能,但返回的日期,如果它是有效的
var d = createDate("2016--01---01")
createDate = function(str) {
var date = new Date(str)
if(date instanceof Date && !isNaN(date.valueOf())) return date
else throw Error('invalid date')
}
你想檢查提供的字符串是否是vaild日期或不是? – murli2308
您想在創建Date()之前檢查該字符串是否有效,或者Date()是否無效? –
我需要從'日期'對象創建或實際錯誤日期時出錯 – alexey