Javascript 检查isDate返回的日期无效
我有这样的日期字符串Javascript 检查isDate返回的日期无效,javascript,jquery,date,Javascript,Jquery,Date,我有这样的日期字符串2010年5月1日至2016年8月15日。我只想在我的函数中将其作为日期字符串进行检查,而不是继续执行函数。当我用新日期(值)检查此字符串时,其返回的无效日期。如何将其作为日期进行检查?var str=“2010年5月1日至2016年8月15日”; var str = "1 May 2010 To 15 Aug 2016"; //First split string var array = str.split("To"); //then check if both are
2010年5月1日至2016年8月15日
。我只想在我的函数中将其作为日期字符串进行检查,而不是继续执行函数。当我用新日期(值)
检查此字符串时,其返回的无效日期。如何将其作为日期进行检查?var str=“2010年5月1日至2016年8月15日”;
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');
}
}
//第一个拆分字符串
var数组=str.split(“To”);
//然后检查两者是否都是日期
对于(var i=0;i
我会使用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;
}
var checkDate=函数(str){
风险值日期=str.split(“To”);
var标志=真;
对于(变量i=0;i
我已经为这个做了一把小提琴
var checkDate=函数(str){
风险值日期=str.split(“To”);
对于(变量i=0;i
我可以在任何地方的代码中使用此函数。解析字符串时,应始终提供要解析的字符串的格式。使用ES5 every方法可以非常简单地做到这一点:
var isValid='2010年5月1日至2016年8月15日'。拆分('To')。每个(函数){
返回力矩'D MMM YYYY')。isValid();
});
console.log(isValid)代码>
有两个日期吗?2010年5月1日和2016年8月15日。你应该把它们分开并检查两个。灵感有两个日期,这些日期是你给出的还是(静态)的,还是来自某个地方的,比如dynamicI更改了你的函数,我更喜欢在我的代码中使用它。谢谢,看看我的答案。谢谢,伙计,这节省了我的时间!请不要那样做。阅读并遵循并始终提供要分析的字符串的格式。否则,将由解析器来猜测。它将返回返回有效日期的第一次尝试,不一定是“正确”日期。我已根据您的需要更改了我的函数。你需要这样做。请查收。在这里,您的代码没有机会检查数组的second部分。例如:想想“2001年5月1日至20a6年8月15日”一案。它会变成现实。但第二部分是无效的。检查我的函数,如果可以,则将其标记为已接受,因为它将帮助其他人。您可以使用str.split('To')替换整个函数。every(s=>return moment(s).isValid()但是您应该向解析器提供字符串格式。
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;
}
}
}