我有这样的日期字符串1 May 2010 To 15 Aug 2016
。我只是想检查这是我的函数上的日期字符串,而不是继续一个函数。当我检查此字符串与new Date(value)
它返回Invalid日期。我该如何检查这个日期?检查isDate返回无效的日期
回答
var checkDate = function (str){
var dates = str.split("To");
for(var i = 0; i < dates.length; i++) {
if (moment(dates[i]).isValid()) {
return true;
} else {
return false;
}
}
}
我可以在我的代码的任何地方使用该功能。
我已根据您的需要更改了我的功能。你需要这样做。请检查。这里你的代码没有机会检查数组的第二部分。例如:认为案件“2001年5月1日至8月15日20时”。它会返回true。但第二部分是无效的。检查我的功能,如果可以,请将其标记为已接受,因为它可以帮助其他人。 –
您可以用'str.split('To').every(s => return moment(s).isValid());替换整个函数;'但是您应该提供字符串格式给解析器。 – RobG
var str = "1 May 2010 To 15 Aug 2016";
//First split string
var array = str.split("To");
//then check if both are dates
for(var i = 0; i < array.length; i++) {
if(isNaN(new Date(array[i]))) { //Checking date
alert(array[i]+ ' is not valid date');
}
}
我会使用js日期库时刻js为此。
var checkDate = function (str){
var dates = str.split("To");
var flag = true;
for(var i = 0; i < dates.length; i++) {
if (moment(dates[i]).isValid()) {
flag = false;
}
}
return flag;
}
我创建了一个小提琴为
我有改变你的功能,我更喜欢在我的代码中使用它。谢谢并看到我的答案。 –
感谢哥们,它节省了我的时间! –
请不要这样做。阅读并遵循[*文档*](http://momentjs.com/docs/#/parsing/string/)和**始终**提供要解析的字符串格式。否则,你将把它留给解析器来猜测。它将返回返回有效日期的第一次尝试,而不一定是“正确”的日期。 – RobG
解析字符串时,应始终提供解析字符串的格式。这可以非常简单地使用ES5 每方法来完成:
var isValid = '1 May 2010 To 15 Aug 2016'.split(' To ').every(function(s) {
return moment(s,'D MMM YYYY').isValid();
});
console.log(isValid);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.js"></script>
如果箭头功能都正常,则:
var isValid = '1 May 2010 To 15 Aug 2016'.split(' To ').every(s=>moment(s,'D MMM YYYY').isValid());
做这项工作。
- 1. 无效日期返回无效日期
- 2. SimpleDateFormat.parse返回无效日期
- 3. 日期strptime返回无效日期
- 4. SQL中的IsDate函数将无效日期评估为有效
- 5. momentJS的TODATE()返回无效日期
- 6. current_date()+ 1返回无效日期
- 7. 为什么DateTime.now返回“无效日期”?
- 8. 矩形格式返回无效日期
- 9. 新的日期(毫秒)返回无效的日期
- 10. 下周末的日期时间在JavaScript返回无效日期
- 11. $过滤器(“日期”)返回“无效的日期”
- 12. 在FF中返回无效日期的日期(dateString)
- 13. 日期检查总是返回false
- 14. jQuery UI Datepicker getDate在无效日期返回当天日期
- 15. 检查并返回无效数据
- 16. 使用isDate返回true vb.net
- 17. 检查日期时间总是返回日期在未来
- 18. 期待Time.zone.parse引发无效日期的错误,但返回零
- 19. javascript日期函数返回“日期{日期无效}”在Firefox浏览器
- 20. 日期格式返回无
- 21. ISDATE没有验证正确的日期
- 22. 的JavaScript的setDate()返回无效的日期
- 23. SimpleDateFormat返回具有无效日期字符串的奇怪日期
- 24. 在PHP中,如何检查date_create是否返回有效的日期对象?
- 25. JS检查有效的日期格式
- 26. Linux日期:无效日期
- 27. javascript日期()对象返回有效但不新的日期()
- 28. Mono中的DateTime.ToString返回无效日期(“00/734718/0001 01:41:38”)
- 29. Django Mysql数据库返回无效的日期时间值
- 30. DateTime.Today.ToString( “DD/MM/YYYY”)返回无效的日期时间价值
有两个日期? 2010年5月1日和2016年8月15日。您应该拆分这些并检查两者。 – Evus
inspiration http://stackoverflow.com/questions/492994/compare-two-dates-with-javascript – daremachine
有两个日期,这些日期由你或(静态)或从某些地方给出,如动态 –