项目中输入框日期格式不统一,两个日期比较不能按一个日期格式比较。这个js方法虽然繁琐写,但是包括的日期格式比较多,能够适应大多数日期比较。
/**
* 判断是不是一个正确的时间 yyyy-MM-dd
* @param {String} str
* @return {Date}
*/
Date.isSimpleDate = function(str){
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
var r = str.match(reg);
if(r==null)return null;
var d= new Date(r[1], r[3]-1,r[4]);
var newStr=d.getFullYear() + "-";
newStr+=(((d.getMonth()+1)<10&&r[3].length>1)?('0'+(d.getMonth()+1)):(d.getMonth()+1)) + "-" ;
newStr+=(((d.getDate())<10 && r[4].length>1)?('0'+d.getDate()):d.getDate());
if(newStr==str){
return d;
}else{
return null;
}
}
/**
* 判断是不是一个正确的时间类型 yyyy-MM-dd hh
* @param {Object} str
*/
Date.isDateHH = function(str){
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2})$/;
var r = str.match(reg);
if(r==null)return null;
var d= new Date(r[1], r[3]-1,r[4],r[5]);
var newStr=d.getFullYear() + "-";
newStr+=(((d.getMonth()+1)<10&&r[3].length>1)?('0'+(d.getMonth()+1)):(d.getMonth()+1)) + "-" ;
newStr+=(((d.getDate())<10 && r[4].length>1)?('0'+d.getDate()):d.getDate()) + " ";
newStr+=((d.getHours()<10&&r[5].length>1)?('0'+d.getHours()):d.getHours());
if(newStr==str){
return d;
}else{
return null;
}
}
/**
* 判断是不是一个正确的时间类型 yyyy-MM-dd hh:mm
* @param {String} str
*/
Date.isDateHHMM = function(str){
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2})$/;
var r = str.match(reg);
if(r==null)return null;
var d= new Date(r[1], r[3]-1,r[4],r[5],r[6]);
var newStr=d.getFullYear() + "-";
newStr+=(((d.getMonth()+1)<10&&r[3].length>1)?('0'+(d.getMonth()+1)):(d.getMonth()+1)) + "-" ;
newStr+=(((d.getDate())<10 && r[4].length>1)?('0'+d.getDate()):d.getDate()) + " ";
newStr += ((d.getHours()<10&&r[5].length>1)?('0'+d.getHours()):d.getHours())+":";
newStr += ((d.getMinutes()<10&&r[6].length>1)?('0'+d.getMinutes()):d.getMinutes());
if(newStr==str){
return d;
}else{
return null;
}
}
/**
* 判断是不是一个正确的时间类型 yyyy-MM-dd hh:mm:ss
* @param {String} str
*/
Date.isDateHHMMSS = function(str){
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
var r = str.match(reg);
if(r==null)return null;
var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
var newStr=d.getFullYear() + "-";
newStr+=(((d.getMonth()+1)<10&&r[3].length>1)?('0'+(d.getMonth()+1)):(d.getMonth()+1)) + "-" ;
newStr+=(((d.getDate())<10 && r[4].length>1)?('0'+d.getDate()):d.getDate()) + " ";
newStr += (((d.getHours()<10&&r[5].length>1)?('0'+d.getHours()):d.getHours()))+":";
newStr += (((d.getMinutes()<10&&r[6].length>1)?('0'+d.getMinutes()):d.getMinutes())) + ":";
newStr += ((d.getSeconds()<10&&r[7].length>1)?('0'+d.getSeconds()):d.getSeconds());
if(newStr==str){
return d;
}else{
return null;
}
}
/***
* 判断是日期1是不是在日期2后面
* @param {Date/String} d1
* @param {Date/String} d2
* @return {Boolean} true 小于日期2
*/
Date.before = function(d1,d2){
if((typeof d1 == 'object' && d1.constructor == Date) && (typeof d2 == 'object' && d2.constructor == Date)){
if(d1<=d2){
return true;
}else{
return false;
}
}else if((typeof d1 == 'string' && d1.constructor == String) && (typeof d2 == 'string' && d2.constructor == String)){
var date1 = Date.isSimpleDate(d1)!=null?Date.isSimpleDate(d1):Date.isDateHH(d1);
date1 = date1!=null?date1:Date.isDateHHMM(d1);
date1 = date1!=null?date1:Date.isDateHHMMSS(d1);
var date2 = Date.isSimpleDate(d2)!=null?Date.isSimpleDate(d2):Date.isDateHH(d2);
date2 = date2!=null?date2:Date.isDateHHMM(d2)
date2 = date2!=null?date2:Date.isDateHHMMSS(d2);
if(date1==null||date2==null){
alert("日期格式不正确!");
return false;
}
if(date1<=date2){
return true;
}else{
return false;
}
}else if((typeof d1 == 'string' && d1.constructor == String) && (typeof d2 == 'object' && d2.constructor == Date)){
var date1 = Date.isSimpleDate(d1)!=null?Date.isSimpleDate(d1):Date.isDateHH(d1);
date1 = date1!=null?date1:Date.isDateHHMM(d1);
date1 = date1!=null?date1:Date.isDateHHMMSS(d1);
if(date1==null||d2==null){
alert("日期格式不正确!");
return false;
}
if(date1<=d2){
return true;
}else{
return false;
}
}else if((typeof d1 == 'object' && d1.constructor == Date) && (typeof d2 == 'string' && d2.constructor == String)){
var date2 = Date.isSimpleDate(d2)!=null?Date.isSimpleDate(d2):Date.isDateHH(d2);
date2 = date2!=null?date2:Date.isDateHHMM(d2)
date2 = date2!=null?date2:Date.isDateHHMMSS(d2);
if(d1==null||date2==null){
alert("日期格式不正确!");
return false;
}
if(d1<=date2){
return true;
}else{
return false;
}
}else{
alert("无法判断输入数据类型!");
return false;
}
}
分享到:
相关推荐
### 核心知识点:JS日期比较方法 #### 函数概述 给定的代码片段定义了一个名为`compare_date`的函数,其主要目的是比较两个日期字符串,返回一个布尔值,指示第一个日期是否晚于第二个日期。此函数的设计考虑了日期...
js日期带时间的比较,js日期带时间的比较
通过这种方式,可以有效地处理日期比较问题,适用于多种场景下的需求。 ### 总结 本文介绍了一种纯JS方法来比较日期之间的大小,并给出了详细的步骤和代码实现。这种方法简单实用,适用于大多数Web开发项目。通过...
### JavaScript中的日期比较 在JavaScript开发中,对日期进行比较是一项常见的需求,尤其是在涉及时间管理、数据排序等场景时。本文将详细介绍如何在JavaScript中实现日期的比较,并提供几种不同的方法来帮助开发者...
Date对象允许我们创建、格式化和比较日期。例如,创建一个新日期实例可以这样写: ```javascript var currentDate = new Date(); ``` 二、jQuery与日期插件 为了创建用户友好的日期选择控件,我们可以利用jQuery...
在实际应用中,JavaScript的日期格式化可以使用多种方式实现,包括但不限于自定义函数、使用内置`Date`对象的`toLocaleString`或`toISOString`方法,或者利用第三方库,如Moment.js或date-fns。这些库提供了丰富的...
js日期时间格式化js日期时间格式化js日期时间格式化js日期时间格式化js日期时间格式化js日期时间格式化js日期时间格式化js日期时间格式化
JavaScript日期时间控件是网页开发中常用的一种组件,主要用于用户在网页上选择或输入日期和时间。在JavaScript中,处理日期和时间的核心对象是`Date`。本篇将深入探讨JavaScript日期时间控件的实现原理、使用方法...
日期格式年月日(yyyy-mm-dd) 时间格式时分(hh:mm)
总的来说,JS日期控件涉及了JavaScript的基础知识,如对象、事件、DOM操作,以及一些高级特性,如国际化和性能优化。理解并掌握这些知识点,能帮助开发者构建出功能完备、用户体验优秀的日期选择功能。
`WdatePicker`是一款功能丰富的JavaScript日期选择插件,由中国Web开发社区开发,支持多种日期格式,提供多种语言环境,并且具有日期计算、日期限制、日期校验等功能。其使用非常简便,只需要在HTML中添加一个`...
JavaScript日期选择插件是网页开发中常用的一种工具,主要用于用户在网页上方便地选择日期,常见于表单输入、日历应用以及各种需要处理日期的交互场景。在本压缩包中,你将找到一个js日期插件,它允许开发者自定义...
"网页日期选择js文件" 提供的就是一个JavaScript实现的日期选择功能,使得开发者无需编写复杂的代码就能在网页上添加这种交互式元素。 JavaScript是一种在客户端运行的脚本语言,它对于网页动态交互起着至关重要的...
4. **日期比较**:`Date`对象可以进行比较,如`myDate1 ,这将判断myDate1是否早于myDate2。 5. **时间戳**:`getTime()`方法返回从1970年1月1日以来的毫秒数,这在进行日期计算时非常有用。 6. **日期增加/减少**...
首先,"dol-datepicker.js" 文件很可能是这个日期时间选择器的主要实现部分,它包含了JavaScript代码,用于创建交互式的日期时间选择界面以及处理用户的选取行为。JavaScript的Date对象是处理日期和时间的基础,我们...
在本“JS时间日期源码集锦”中,我们将会探讨JavaScript处理时间日期的各种方法和技巧,以及如何创建炫酷的时间日期相关特效。 一、JavaScript中的日期对象 在JavaScript中,Date对象是内置的构造函数,可以用来...
选择日期控件(js封装类,javascript,选择日期,文本框选择日期,控件)
以下是对几款优秀的JavaScript日期插件的详细说明,这些插件能够帮助你精确到日期、小时、分钟甚至秒,提升你的项目质量。 1. **jQuery UI Datepicker** jQuery UI的Datepicker是广泛使用的日期选择器插件,它可以...
这篇内容将深入讲解JavaScript日期控件及其使用方法,结合提供的`jsDate.html`和`date.js`文件,我们将学习如何创建和自定义这样的控件。 1. **内置JavaScript日期对象** JavaScript提供了一个内置的`Date`对象,...