javascript检查结束日期大于或等于开始日期
在Javascript中是否可以检查结束日期是否大于或等于开始日期?我的日期是格式为“dd/mm/yyyy”的字符串。试试这个javascript检查结束日期大于或等于开始日期,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(r
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");
}
查看此函数
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,2),10);
var mon2 = parseInt(str2.substring(3,5),10);
var yr2 = parseInt(str2.substring(6,10),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();
}
}
函数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.子串(6,10,10);
var dt2=parseInt(str2.substring(0,2),10);
var mon2=parseInt(str2.substring(3,5),10);
var yr2=parseInt(str2.substring(6,10),10);
var date1=新日期(yr1、mon1、dt1);
var date2=新日期(yr2、mon2、dt2);
如果(日期2<日期1)
{
警报(“截止日期不能大于起始日期”);
返回false;
}
其他的
{
警报(“提交…”);
文件。表格1。提交();
}
}
如果字符串格式('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
我花了一些时间来查找,但JQuery使用实现了这一功能。(链接中也提供了源代码。) 使用该函数还可以很好地处理日期比较。试试这个
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,4),(closeDate.substr(3,2)-1),closeDate.substr(0,2));
if (date1> date2)
{
alert("Expected Closed date cannot be less than Lead date.");
return false;
}
else
{
alert("true");
return false;
}
}
这也适用于闰年。采用dd/mm/yyyy格式(不是任何其他格式)。首先使用此函数将字符串转换为js中的日期类型:
function common_getDateFromUI(str) {
var arr = str.split("/");
var returnDate = new Date(arr[2], arr[1] - 1, arr[0], 0, 0, 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, 0, 0, 1); // Start just after midnight
endDate.setHours(23, 59, 59, 999); // End just before midnight
var diff = endDate - startDate; // Milliseconds between datetime objects
var days = Math.round(diff / millisecondsPerDay);
return days;
}
功能日历日(开始日期、结束日期){
如果(结束日期<开始日期)
返回0;
//计算日期之间的天数
var millissecondsPerday=86400*1000;//以毫秒为单位的天
startDate.setHours(0,0,0,1);//午夜后开始
endDate.setHours(23,59,59999);//在午夜前结束
var diff=endDate-startDate;//日期时间对象之间的毫秒数
变量天数=数学整数(差/毫秒/日);
返程天数;
}
下面这个链接是一个简单的演示,可以获得日期之间的差异天数 这是最简单的方法
function endAfterStart(start, end) {
var startDate = new Date(start);
var endDate = new Date(end);
return endDate.getTime() >= startDate.getTime();
}
只需将字符串转换为date,并使用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);
您应该将日期解析为javascript日期对象,并比较getTime()值。这是一种很容易用谷歌搜索的东西,有数百万个答案。正如上面的海报所说,使用Date对象。+1-很好的解决方案。不过,您有无与伦比的括号。无法编辑,因为这只是一个3个字符的更改。+1很好的解决方案。我想这对不同的日期格式无效?@Alex-谢谢:),它也适用于不同的格式,您只需要更改regex中的替换表达式。@niksvp:您的日期格式regexp可能更紧凑,请尝试:/([012]?[1-9])| 10 | 20 | 30 | 31)[/]([0]?[1-9])| 10 | 11 | 12)[/](19 | 20[0-9]{2}/这将验证0-31天/0-12个月/xx | 19xx | 20xx年。@andora-ya,我同意你的意见,但这里不需要验证。。只需比较日期即可。假设/假定日期有效:)
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;
function endAfterStart(start, end) {
var startDate = new Date(start);
var endDate = new Date(end);
return endDate.getTime() >= startDate.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);