/**
* 判断是不是一个正确的时间 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比较时间的大小 很好用,可以比较YY-MM-DD HH:MM:SS
js日期带时间的比较,js日期带时间的比较
今天在google搜索js比较时间大小,能用的很少。js静态函数Date.prase() 参数有很严格的要求。否则就会转化失败。
非常好用的JavaScript日期时间空间
js获取页面上的时间和当前时间进行比较判断,js获取页面上的时间和当前时间进行比较判断,js获取页面上的时间和当前时间进行比较判断
js获取当前时间yyyymmddhhmmss js获取当前时间yyyymmddhhmmss js获取当前时间yyyymmddhhmmss js获取当前时间yyyymmddhhmmss js获取当前时间yyyymmddhhmmss js获取当前时间yyyymmddhhmmss js获取当前时间...
日期格式年月日(yyyy-mm-dd) 时间格式时分(hh:mm)
JavaScript(JS)_时间函数,常用的js时间函数的用法
一个javascript做的时间轴插件,初学习js的可以看看
js中本人尝试过许多方法对时间前进进行计算,后来慢慢发现,通过New Date类对每日的24:00的进位,可以很简便的计算出给定时间的一小时或一天后的时间;此次资源以整时为例,若精确到分秒,思路相同,可先将分秒部分...
在JSP页面有时需要比较两个时间大小,可以使用JS来比较
兼容所有浏览器的js,用来动态显示当前时间,只需要调用,并传入显示区域的id即可
时间线js 根据时间进度 显示节点位置 可用于项目跟踪等 页面显示 本人所写 有问题找本人
js 时间控件 javascript
js 比较起止时间(在web中,添加时结束时间不得小于开始时间). 适合web ,是成功案例,有js源码和HTML 源码
js计算时间差js计算时间差js计算时间差js计算时间差js计算时间差js计算时间差js计算时间差js计算时间差js计算时间差
Date.prototype.DateDiff 比较日期差 Date.prototype.toString 日期转字符串 Date.prototype.toArray 日期分割为数组 Date.prototype.DatePart 取日期的部分信息 Date.prototype.MaxDayOfDate 取日期所在月的最大...
JS日期时间选择器,js原生,任何地方可用,可选择时间和日期。
JavaScript最简单比较两个时间格式数据的大小.zip 欢迎下载
JS取服务器时间