How to throw an error whenever an invalid date object is created?
本问题已经有最佳答案,请猛点这里访问。
我提出了一个奇怪的问题:
1 | var d = new Date("2016--01---01"); |
将创建没有任何错误的对象。实际上,第一个问题是——为什么?
但是我需要从这个对象中获取字符串-我正在尝试
1 2 3 | d.toString(); // 'Invalid Date' d.getTime(); // NaN d.toJSON(); // null |
获取字符串或检查其是否不正确的可能方法是什么?
当转换为一个数字时,您只需检查它是否为有效数字:
1 | var ok = !isNaN(d); |
(此转换与使用
但请注意,有效日期可能不是所需的日期。通常使用经过验证的日期格式。像moment.js这样的库可能对您有所帮助。
创建一个工厂类型函数,该函数在给定的字符串产生无效日期时引发错误,但如果日期有效,则返回该日期。
1 2 3 4 5 6 7 | 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') } |