js比较日期大小

 

var d1 = new Date(document.getElementById('startTime').value.replace(/\-/g, "\/"));

var d2 = new Date(document.getElementById('endTime').value.replace(/\-/g, "\/"));        

if(d1 > d2) {

alert("开始日期必须小于或等于结束日期!");

        return false;

 

 

字符串比较

 

/** 
 * 对Date的扩展,将 Date 转化为指定格式的String 
 * 月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q) 可以用 1-2 个占位符 
 * 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) 
 * eg: 
 * (new Date()).format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 
 * (new Date()).format("yyyy-MM-dd E HH:mm:ss") ==> 2009-03-10 二 20:09:04 
 * (new Date()).format("yyyy-MM-dd EE hh:mm:ss") ==> 2009-03-10 周二 08:09:04 
 * (new Date()).format("yyyy-MM-dd EEE hh:mm:ss") ==> 2009-03-10 星期二 08:09:04 
 * (new Date()).format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18 
 */  
Date.prototype.format=function(fmt) {  
    var o = {  
    "M+" : this.getMonth()+1, //月份  
    "d+" : this.getDate(), //日  
    "h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12, //小时  
    "H+" : this.getHours(), //小时  
    "m+" : this.getMinutes(), //分  
    "s+" : this.getSeconds(), //秒  
    "q+" : Math.floor((this.getMonth()+3)/3), //季度  
    "S" : this.getMilliseconds() //毫秒  
    };  
    var week = {  
    "0" : "\u65e5",  
    "1" : "\u4e00",  
    "2" : "\u4e8c",  
    "3" : "\u4e09",  
    "4" : "\u56db",  
    "5" : "\u4e94",  
    "6" : "\u516d"  
    };  
    if(/(y+)/.test(fmt)){  
        fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));  
    }  
    if(/(E+)/.test(fmt)){  
        fmt=fmt.replace(RegExp.$1, ((RegExp.$1.length>1) ? (RegExp.$1.length>2 ? "\u661f\u671f" : "\u5468") : "")+week[this.getDay()+""]);  
    }  
    for(var k in o){  
        if(new RegExp("("+ k +")").test(fmt)){  
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));  
        }  
    }  
    return fmt; 
}
var today = new Date().format("yyyy-MM-dd");         
			var start = document.getElementById('start').value;
			var end = document.getElementById('end').value;
        	if(start != "" && start < today) {
				$("circle").innerHTML = "开始日期不能小于当期日期!";
            	return false;
			} else if(end != "" && end < today) {
				$("circle").innerHTML = "结束日期不能小于当期日期!";
            	return false;
			} else if(start >= end) {
				$("circle").innerHTML = "结束日期必须大于开始日期!";
			} else {
				$("circle").innerHTML = "";
			}

 

### JavaScript 中比较两个日期 在 JavaScript 中,`Date` 对象提供了处理日期的强大功能[^1]。为了比较两个 `Date` 对象,可以直接使用关系操作符 (`<`, `>`, `<=`, `>=`) 或者调用 `.getTime()` 方法获取自 Unix 纪元以来的毫秒数来进行数值上的对比。 #### 使用关系操作符直接比较 由于 `Date` 实例可以被隐式转换成时间戳(即从 1970 年 1 月 1 日 UTC 到该时刻所经过的毫秒数),因此可以直接利用这些操作符: ```javascript let dateA = new Date('2023-10-05'); let dateB = new Date('2024-08-15'); if (dateA < dateB) { console.log("dateA is earlier than dateB"); } else if (dateA > dateB){ console.log("dateA is later than dateB"); } else { console.log("Both dates are equal."); } ``` #### 转换为时间戳再做比较 另一种方法是显式地将每个 `Date` 对象转为其对应的时间戳值,之后再进行比较: ```javascript let timestampA = dateA.getTime(); let timestampB = dateB.getTime(); console.log(timestampA < timestampB ? "Earlier" : timestampA > timestampB ? "Later" : "Equal"); ``` 需要注意的是,在某些情况下,即使两个不同的 `Date` 对象表示同一瞬间,它们也可能不被认为是完全相同的对象;这是因为对于非原始类型的变量而言,“相等”通常指的是引用而不是实际的内容或状态[^2]。然而,当涉及到具体的时间点时,只要两者的内部时间戳相同,则可以通过上述方式成功判定其相对顺序或者绝对一致性。 另外值得注意的一点是在创建 `Date` 对象的时候要确保输入格式正确无误,并考虑到可能存在的时区差异问题[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值