相关疑难解决方法(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万
查看次数

检查日期是否有效

以下是场景:

我有一个不同的String日期和日期格式.例:
日期:2016-10-19
dateFormat:"DD-MM-YYYY".

我需要检查这个日期是否有效.

我试过以下事情

var d = moment("2016-10-19",dateFormat);
Run Code Online (Sandbox Code Playgroud)

d.isValid()false每次都会回来.Moment.js是否以给定格式解析日期?

然后我尝试DD-MM-YYYY先将日期格式化,然后将其传递给Moment.js:

var d = moment("2016-10-19").format(dateFormat);
var date = moment(d, dateFormat);
Run Code Online (Sandbox Code Playgroud)

现在date.isValid()给我想要的结果,但是这里Moment.js日期对象被创建了两次.我怎么能避免这个?有更好的解决方案吗?

仅供参考我不允许改变dateFormat.

javascript datetime date momentjs

104
推荐指数
8
解决办法
13万
查看次数

moment.js isValid函数无法正常工作

我有这个问题......我没有发现任何类似的东西,似乎很奇怪没有人用moment.js验证时间这个问题.

moment('03:55', 'HH:mm').isValid(); //true
moment('03:55jojojo', 'HH:mm').isValid(); //true
moment('03:55jojojo', 'HH:mm',true).isValid(); //true
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?这是一个例子:

http://jsfiddle.net/vCGAp/145/

javascript jquery date momentjs

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

moment.js中的isSame()函数或日期验证

我需要验证用户的日期并检查它是否采用特定格式.如果是,那么它将被接受,否则它将不会.我正在寻找那种

value.match("regular expression") 
Run Code Online (Sandbox Code Playgroud)

以上工作正常,如果我必须选择几种格式.所以,我遇到了这个时刻.有兴趣知道如何使用isSame().我尝试实现但不成功.喜欢 :

var x=moment("MM/DD/YYYY") ;
x.isSame("28-02-1999");  // am getting false which is right
var x=moment("28-02-1999","DD-MM-YYYY") ;
x.isSame("28-02-1999");  // am getting false which is wrong
Run Code Online (Sandbox Code Playgroud)

所以,请帮忙.谢谢

javascript validation date momentjs

44
推荐指数
1
解决办法
7万
查看次数

moment.js验证无效日期"2013-10-311"

运行moment.js,2.2.1

moment("2010-10-319", ["YYYY-MM-DD"]).isValid()
Run Code Online (Sandbox Code Playgroud)

...返回true,并将moment对象设置为2010年10月31日.解析器似乎剥离了任何类型的无关字符:

moment("2010-10-31a", ["YYYY-MM-DD"]).isValid(); // true
Run Code Online (Sandbox Code Playgroud)

Curiouser,如果你添加额外的格式选择,那么"剥离"仅限于一个角色!(格式字符串测试不应该是ORed吗?)

moment("2010-10-319", ["MM/DD/YYYY", "MM-DD-YYYY", "YYYY-MM-DD"]).isValid(); // true
moment("2010-10-3199", ["MM/DD/YYYY", "MM-DD-YYYY", "YYYY-MM-DD"]).isValid(); // false (!!!)
Run Code Online (Sandbox Code Playgroud)

这种行为是设计的吗?我不明白为什么.

编辑:评论者发现另一个案例,其中超出一个的额外字符确实被剥离:

moment("2010-10-319qr", ["MM/DD/YYYY", "MM-DD-YYYY", "YYYY-MM-DD"]).isValid(); // true (!)
Run Code Online (Sandbox Code Playgroud)

这是在行动:http://jsfiddle.net/grahampcharles/r42jg/6/(更新新案例)

javascript date momentjs

15
推荐指数
2
解决办法
1万
查看次数

标签 统计

date ×5

javascript ×5

momentjs ×4

datetime ×1

jquery ×1

validation ×1