相关疑难解决方法(0)

在JavaScript中检测"无效日期"日期实例

我想告诉JS中有效和无效日期对象之间的区别,但无法弄清楚如何:

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'
Run Code Online (Sandbox Code Playgroud)

编写isValidDate函数的任何想法?

  • Ash建议Date.parse用于解析日期字符串,它提供了一种检查日期字符串是否有效的权威方法.
  • 如果可能的话,我希望我的API接受一个Date实例,并且能够检查/断言它是否有效.Borgar的解决方案就是这样做的,但我需要跨浏览器进行测试.我也想知道是否有更优雅的方式.
  • Ash让我觉得根本没有我的API接受Date实例,这最容易验证.
  • Borgar建议测试一个Date实例,然后测试它Date的时间值.如果日期无效,则时间值为NaN.我用ECMA-262检查了这个行为是标准的,这正是我正在寻找的.

javascript date

1381
推荐指数
24
解决办法
75万
查看次数

有没有办法检查变量是否是JavaScript中的日期?

我想知道是否有任何方法可以检查对象是否特别是JavaScript中的日期.isType返回Date的对象,这对于此方案是不够的.有任何想法吗?谢谢!

javascript date typechecking

71
推荐指数
2
解决办法
5万
查看次数

45
推荐指数
1
解决办法
8万
查看次数

Typescript:isNaN 不接受日期对象

const isObjectClass = (value: any, className: any) => (Object.prototype.toString.call(value) === `[object ${className}]`);

export const isDate = (value: any) => isObjectClass(value, 'Date');


const time = (time: Date): string => {
    return ((isDate(time) && !isNaN(time)) ? time : new Date()).toISOString();
};
Run Code Online (Sandbox Code Playgroud)

在上面的函数中time,我检查输入是否是有效的 Date 对象。如果有效,它将返回传递的日期的字符串版本。如果无效,它将返回当前日期的字符串版本。

问题isDate()是,它将返回 true 输入值new Date()new Date(undefined))。为了避免这种情况,我使用了!isNaN()return false 的情况!isNaN( new Date(undefined) )

现在的问题是打字稿不允许我将Date对象传递给isNaN函数。

错误

TS2345: Argument of type 'Date' is not assignable to parameter …
Run Code Online (Sandbox Code Playgroud)

typescript

5
推荐指数
2
解决办法
3346
查看次数

标签 统计

javascript ×3

date ×2

typechecking ×1

typescript ×1