微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript检查结束日期大于或等于开始日期

如何解决javascript检查结束日期大于或等于开始日期

| 是否可以检查结束日期是否大于或等于Javascript中的开始日期?我的日期是格式为''dd / mm / yyyy \'的字符串。     

解决方法

尝试这个
var startDate = \"05/01/2011\";
var endDate = \"09/01/2011\";
var regExp = /(\\d{1,2})\\/(\\d{1,2})\\/(\\d{2,4})/;
if(parseInt(endDate.replace(regExp,\"$3$2$1\")) > parseInt(startDate.replace(regExp,\"$3$2$1\"))){
alert(\"greater\");
}
    ,如果字符串格式(\'dd / mm / yyyy \')不变,则此函数应起作用:
function endAfterStart(start,end){
  return new Date(start.split(\'/\').reverse().join(\'/\')) <
          new Date(end.split(\'/\').reverse().join(\'/\'));
}
alert(endAfterStart(\'05/01/2011\',\'09/01/2011\')); //=> true
或扩展
Date.prototype
Date.prototype.isBefore = Date.prototype.isBefore || function(dat){
   return this < dat;
}
new Date(\'05/01/2011\'.split(\'/\').reverse().join(\'/\'))
   .before( new Date(\'09/01/2011\'.split(\'/\').reverse().join(\'/\')) );  //=>true
    ,最简单的方法来做到这一点。
function endAfterStart(start,end) {
    var startDate = new Date(start);
    var endDate   = new Date(end);

    return endDate.getTime() >= startDate.getTime();
} 
    ,
function isDate(value)
            {
                var fromDate = document.getElementById(\"fromDate\").value
                var toDate= document.getElementById(\"toDate\").value
                //var curr_Date= new SimpleDateFormat(\"dd/mm/yyyy\");


            var dateRegEx = null;
            dateRegEx = new RegExp(/^(((0[1-9]|[12]\\d|3[01])\\/(0[13578]|1[02])\\/((19|[2-9]\\d)\\d{2}))|((0[1-9]|[12]\\d|30)\\/(0[13456789]|1[012])\\/((19|[2-9]\\d)\\d{2}))|((0[1-9]|1\\d|2[0-8])\\/02\\/((19|[2-9]\\d)\\d{2}))|(29\\/02\\/((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/g);

            if (dateRegEx.test(fromDate)){
            }
            else{
                alert(\"Invalid from date\");
                return false;
            }
            dateRegEx = new RegExp(/^(((0[1-9]|[12]\\d|3[01])\\/(0[13578]|1[02])\\/((19|[2-9]\\d)\\d{2}))|((0[1-9]|[12]\\d|30)\\/(0[13456789]|1[012])\\/((19|[2-9]\\d)\\d{2}))|((0[1-9]|1\\d|2[0-8])\\/02\\/((19|[2-9]\\d)\\d{2}))|(29\\/02\\/((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/g);
            if(dateRegEx.test(toDate)) {
            }
            else{
                alert(\"Invalid to date\");
                return false;
            }
            var stDate = new Date(fromDate);
            var enDate = new Date(toDate);
            var compDate = enDate - stDate;
            //var fdate=enDate-curr_Date;

            if(compDate >= 0)
                return true;
            else 
            {
                alert(\"To Date cannot be smaller than From Date\");
                return false;
            }




            /**/
        }
这也将适用于Le年。.dd / mm / yyyy格式(没有其他格式)。     ,花了我一些时间来查找,但是JQuery用
DatePicker
date-range
实现了此确切功能。 (源代码也可以在链接中找到。) Moment.js还可以使用diff函数很好地处理日期比较。     ,查看此功能
function CompareDates() 
{ 
var str1 = document.getElementById(\"Fromdate\").value; 
var str2 = document.getElementById(\"Todate\").value; 
var dt1  = parseInt(str1.substring(0,2),10); 
var mon1 = parseInt(str1.substring(3,5),10); 
var yr1  = parseInt(str1.substring(6,10),10); 
var dt2  = parseInt(str2.substring(0,10); 
var mon2 = parseInt(str2.substring(3,10); 
var yr2  = parseInt(str2.substring(6,10); 
var date1 = new Date(yr1,mon1,dt1); 
var date2 = new Date(yr2,mon2,dt2); 

if(date2 < date1) 
{ 
    alert(\"To date cannot be greater than from date\"); 
    return false; 
} 
else 
{ 
    alert(\"Submitting ...\"); 
    document.form1.submit(); 
} 
} 
    ,尝试这个,
function isDateCompare(){

var leadDate = document.getElementById(\'strDate\').value;

var closeDate = document.getElementById(\'strDateClosed\').value;

var date1 = new Date();

date1.setFullYear(leadDate.substr(6,4),(leadDate.substr(3,2)-1),leadDate.substr(0,2));

var date2 = new Date();

date2.setFullYear(closeDate.substr(6,(closeDate.substr(3,closeDate.substr(0,2));

if (date1> date2)
{

alert(\"Expected Closed date cannot be less than Lead date.\");

return false;

}

else
{

alert(\"true\");

return false;

}

}
    ,第一次使用此函数将在js中将字符串转换为Date类型:
function common_getDateFromUI(str) {
    var arr = str.split(\"/\");
    var returnDate = new Date(arr[2],arr[1] - 1,arr[0],0);
    return returnDate;
}
第二:获得javascript日期类型后,只需将其与普通类型进行比较即可,例如date1> date2或date1 == date2。 或使用此功能来获取日期之间的差异日期:
function CalendarDays(startDate,endDate) {
    if (endDate < startDate)
        return 0;

    // Calculate days between dates
    var millisecondsPerDay = 86400 * 1000; // Day in milliseconds
    startDate.setHours(0,1); // Start just after midnight
    endDate.setHours(23,59,999); // End just before midnight
    var diff = endDate - startDate; // Milliseconds between datetime objects
    var days = Math.round(diff / millisecondsPerDay);

    return days;
}
点击此链接是一个简单的演示,可获取日期之间的不同日期。在此处链接演示     ,
if (iForm.DiddfromDate.value == \"\") 
  { 
    alert(\"  Please enter a value\");  
    iForm.DiddfromDate.focus(); 
    return false;    
  }
     if (iForm.DiddtoDate.value == \"\") 
  { 
    alert(\"  Please enter a  value\");  
    iForm.DiddtoDate.focus(); 
    return false;    
  }      
        try {
            var d1 = iForm.DiddfromDate.value.substr(0,2);
            var m1 = iForm.DiddfromDate.value.substr(3,2);
            var y1 = iForm.DiddfromDate.value.substr(6,4);
            var StrDate = m1 + \"/\" + d1 + \"/\" + y1;

            var d2 = iForm.DiddtoDate.value.substr(0,2);
            var m2 = iForm.DiddtoDate.value.substr(3,2);
            var y2 = iForm.DiddtoDate.value.substr(6,4);
            var EndDate = m2 + \"/\" + d2 + \"/\" + y2;

            var startDate = new Date(StrDate);
            var endDate = new Date(EndDate);
            if (startDate > endDate) {
                alert(\'To date should be greater than From date.\');
                iForm.DiddfromDate.value = \'\';
                iForm.DiddtoDate.value = \'\';
                iForm.DiddfromDate.focus();
                return false;
            }
        } catch (e) { alert(e.Description); }
 return true;
    ,只需将字符串转换为日期,然后使用Date对象的
getTime
方法进行比较即可。 范例程式码
var startDate = \'04/04/2015\'; //date in dd/mm/yyyy format
var endDate = \'05/04/2015\';

function compareDates(sDate,eDate) {
    var dateTime1 = new Date(sDate).getTime(),dateTime2 = new Date(eDate).getTime();
  var diff = dateTime2 - dateTime1;
  if (diff > 0) {
    alert(\"endDate is greater than startDate\");
    return true;
  } 
}
compareDates(startDate,endDate);
工作小提琴     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。