`

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日期带时间的比较

    js日期带时间的比较,js日期带时间的比较

    js日期时间控件 JavaScriptjs日期时间控件 jsp

    JavaScript日期时间控件是网页开发中常用的一种组件,主要用于用户在网页上选择或输入日期和时间。在JavaScript中,处理日期和时间的核心对象是`Date`。本篇将深入探讨JavaScript日期时间控件的实现原理、使用方法...

    js获取页面上的时间和当前时间进行比较判断

    2. **时间区域问题**:JavaScript中的`Date`对象默认使用浏览器的时区,如果涉及到跨时区的时间比较,需要注意时区差异。 3. **兼容性问题**:不同的浏览器对日期和时间的处理可能存在细微差别,在开发时应考虑这些...

    动态显示当前时间的js

    总结来说,"动态显示当前时间的js"是一种利用JavaScript Date对象和定时器功能实现网页上实时更新当前时间的技术。通过理解和应用这些知识,开发者可以创建各种动态时间显示功能,适应不同项目的需求。

    时间线js 根据时间进度 显示节点位置

    在本案例中,“时间线js 根据时间进度 显示节点位置”表明我们正在处理一个JavaScript实现的时间线组件,它能够动态更新,以反映时间的流逝和进度变化,并且能够在时间线上定位各个关键节点。 首先,我们需要理解...

    JS时间拖动条

    在JavaScript(JS)编程中,实现一个时间拖动条功能是一项常见的需求,特别是在涉及到多媒体播放、视频剪辑或时间控制的场景中。本项目“JS时间拖动条”旨在模仿QQ影音中的视频剪辑拖动条,提供用户友好的交互体验。...

    横向时间轴插件_js_时间轴_

    标题中的“横向时间轴插件_js_时间轴_”指的是一个使用JavaScript编写的,用于展示时间线的插件。在Web开发中,时间轴插件常用于以视觉化的方式展示事件序列,比如历史事件、项目进度或者新闻更新等。这个插件可能是...

    基于原生Js的时间轴前端插件

    本文将深入探讨如何使用原生JavaScript(简称Js)开发一款可自定义颜色、格式化输出的时间轴插件。这款插件旨在帮助开发者更方便地在网页上展示时间序列信息,提供高度定制化的功能,以满足不同场景的需求。 首先,...

    JavaScript 比较时间大小的代码

    在JavaScript中,比较时间大小是一项常见的任务,特别是在处理用户输入或动态更新内容的Web应用...通过适当地处理和格式化日期字符串,我们可以避免`Date.parse()`带来的不一致性和解析错误,从而实现可靠的时间比较。

    js时间轴插件

    JavaScript时间轴插件是一种在网页上展示序列事件或数据流的有效工具。它们通常用于项目管理、历史记录展示、新闻更新或者其他需要按照时间顺序呈现信息的场景。本篇将深入探讨"js时间轴插件"的核心概念,以及如何...

    js获取当前时间yyyymmddhhmmss

    js获取当前时间yyyymmddhhmmss js获取当前时间yyyymmddhhmmss js获取当前时间yyyymmddhhmmss js获取当前时间yyyymmddhhmmss js获取当前时间yyyymmddhhmmss js获取当前时间yyyymmddhhmmss js获取当前时间...

    javascript 时间刻度尺插件

    JavaScript时间刻度尺插件是一种用于可视化时间轴的工具,常用于数据展示、日程管理或图表绘制等场景。它能够帮助用户清晰地看到时间序列上的各个关键点,提高数据的可读性和交互性。在本文中,我们将深入探讨这个...

    js日期时间比较大小

    日期格式年月日(yyyy-mm-dd) 时间格式时分(hh:mm)

    JavaScript 类似微信历史聊天时间样式

    在JavaScript编程中,有时我们需要创建特定的用户界面,比如模拟微信聊天时间的显示方式。这个需求涉及到日期和时间的处理,以及根据当前时间与给定时间的比较来展示不同的时间格式。以下是一些关于实现“JavaScript...

    js 时间线 时间轴

    JavaScript时间线和时间轴在网页应用中经常用于展示和交互数据,特别是在数据分析、日历管理、历史事件展示等场景。时间轴(Timeline)是一种可视化工具,它将时间序列转化为易于理解的图形,用户可以通过它来浏览和...

    js时间轴组件

    JavaScript时间轴组件是一种用于在网页上展示序列事件的可视化工具,它可以帮助用户更好地理解数据的顺序和时间关系。本文将详细介绍这种基于JavaScript的时间轴组件及其使用。 首先,时间轴组件通常包含一系列标记...

    js时间轴横向代码

    JavaScript时间轴是一种交互式的网页元素,用于展示一系列按时间顺序排列的事件或数据。在本案例中,"js时间轴横向代码" 涉及到使用JavaScript和可能的CSS(根据提供的文件名css.css)来创建一个水平显示的时间轴。...

    js时间日期输入框

    JavaScript时间日期输入框是一种常见的网页交互元素,它允许用户在网页上方便地选择或输入日期和时间。在网页开发中,这种功能通常通过JavaScript库或者插件实现,以提高用户体验和增强界面的交互性。本篇文章将深入...

    js-实现多功能时间日期时间段区间时间日期插件.rar

    在JavaScript编程领域,时间日期处理是一项常见的任务,尤其是在开发用户界面时。"js-实现多功能时间日期时间段区间时间日期插件.rar" 提供了一个高效、易用的解决方案,旨在简化前端开发者的工作。这款jQuery时间...

    js时间显示

    此外,`moment.js`或`date-fns`这样的库能提供更强大的日期和时间处理功能,比如轻松地实现日期格式化、比较、计算等,它们简化了JavaScript的日期处理,提高了代码的可读性和可维护性。 博客中可能还讨论了如何...

Global site tag (gtag.js) - Google Analytics