JavaScript 如何确定一个变量是否为日期
JavaScript 日期被视为对象。 使用 typeof
运算符 将返回 'object'
,所以你不能使用 typeof
区分一个值是否是一个日期。 你应该使用 instanceof
来判断。
let x = new Date();
if (x instanceof Date) {
// will execute
}
Object.prototype.toString.call()
更好的选择是使用 Object.prototype.toString.call(variableToCheck)
方法。 它以字符串格式返回对象的内部类属性 '[object Type]'
,所以日期是 '[object Date]'
。
let x = new Date();
if (Object.prototype.toString.call(x) === "[object Date]") {
// will execute
}
Check for validity
现在您知道如何检查变量是否为日期,您需要检查它是否为 有效 日期。 您可以使用 !isNaN()
检查日期是否有效的函数。
let x = new Date("Bad String");
if (x instanceof Date) {
// executes, because `x` is technically a date object
}
if (x instanceof Date && !isNaN(x)) {
// will not execute
}
如果 x
是一个日期, isNaN(x)
相当于 Number.isNaN(x.valueOf())
。日期有一个 valueOf()
函数 返回日期的数字表示,以自 Unix 纪元 。
// 86400000, or 24 * 60 * 60 * 1000
new Date('1970-01-02T00:00:00.000Z').valueOf();
您可能会看到的另一个常见技巧是使用 >
操作符。 请记住,您可以使用 <
和 >
中 在 JavaScript 如下所示,所以 d > 0
将返回 true
如果 d
是一个带有正数、非 NaN 的日期 valueOf()
。
const validDate = new Date('2021-01-01');
const zeroDate = new Date(0);
const invalidDate = new Date('fail');
validDate > 0; // true
zeroDate > 0; // false
invalidDate > 0; // false
validDate >= 0; // true
zeroDate >= 0; // true
invalidDate >= 0; // false
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: JavaScript 可枚举性
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论