`
duyouhua1214
  • 浏览: 238069 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

判断是不是一个正确的时间类型

 
阅读更多

/**
 * 判断是不是一个正确的时间 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;
 }
}

分享到:
评论

相关推荐

    判断是否是时间、日期字符串

    判断所传入的字符串是不是时间类型,日期类型,如果是日期类型可以转换成Date类型

    java判断时间大小

    ### Java 判断时间大小知识点详解 #### 一、前言 在Java开发中,经常会遇到比较日期或时间大小的问题,特别是在处理用户输入的数据时。本文将详细介绍如何在Java中实现日期与时间的比较,包括使用`...

    oracle日期时间判断函数

    针对标题"oracle日期时间判断函数"和描述中提到的内容,我们可以深入探讨两个关键的函数,它们主要用于判断字符串是否可以转换为合法的日期时间格式。 1. TO_DATE函数: TO_DATE是Oracle中用于将字符串转换为日期...

    vb IsDate判断字符串是否为日期或时间.rar

    vb 判断字符串是否为日期或时间,在输入框输入任意字符串类型,程序将会判断出该字符串是否是时间字符串,这个判断方法VB员自带有函数,使用IsDate即可实现,下面是使用IsDate的简单用法示例:  If IsDate(Text1) =...

    设计算法判断一个算术表达式的圆括号是否配对

    ### 设计算法判断一个算术表达式的圆括号是否配对 #### 背景介绍 在编程语言中,括号被广泛用于控制程序的执行流程、定义函数参数以及表示数学表达式等。其中,圆括号(即“()”)是最常见的一种。正确匹配的圆括号...

    postgresql中判断是否为数字和是否为时间日期格式的相关函数

    postgresql中判断是否为数字和是否为时间日期格式的相关函数,类似于sqlserver中的isDate和isnumeric函数

    回文判断,回文判断,试编写一个算法,判断依次读入的一个以@为结素符的字母序列

    在计算机科学中,回文判断是一个经典的问题,旨在判断一个字符串是否为回文。回文是指一个字符串,读取方式不变,小写字母和大写字母视为相同的字符。例如,"radar"是一个回文,而"hello"不是。 在本文中,我们将...

    判断系统及时间

    在IT领域,了解如何判断...综上所述,判断系统类型和获取系统时间是IT行业中常见的操作,它涉及到操作系统接口的使用、时间处理的原理以及跨平台编程的技巧。理解和掌握这些知识点对于开发高效、安全的应用至关重要。

    Delphi中判断字符串是否符合日期格式.pdf

    在Delphi编程中,判断一个字符串是否符合日期格式是一个常见的任务。这个任务通常涉及到字符串处理、日期时间操作以及条件判断。下面将详细解释这个`TF_tn.IsDate`函数实现的逻辑。 首先,函数接收一个名为`Var...

    DataUtil--数据工具类--数据类型判断和比较

    JSON字符串转换成对象集合(只支持6种基本数据类型),一个单元的json字符串转换成MAP对象,数组转换成集合,List深拷贝,字符串转换为short,进制转换,保留小数位数到指定位数,判断一个数是否在指定范围内,...

    c#版的时间判断,很牛的哈

    除了基本的日期比较,C#还支持时间间隔的判断,例如检查一个事件是否在特定的时间范围内。可以使用`.AddDays()`、`.AddHours()`等方法来增加或减少时间,或者用`.CompareTo()`方法比较两个日期的先后。 另外,C# ...

    时间类型的窗体程序

    10. **测试和调试**:创建时间类型的窗体程序后,需要进行全面的测试,确保所有功能正确无误。这包括单元测试、集成测试和用户体验测试,以验证时间处理的准确性,以及用户界面的易用性。 总之,创建时间类型的窗体...

    c_时间类型转换

    ### C# 时间类型转换详解 在C#编程中,时间处理是常见的需求之一。本文将详细介绍如何使用`DateTime`类来进行各种时间类型的转换,并通过具体的示例代码来展示不同的转换方法及其应用场景。 #### 1. `DateTime` 类...

    C#判断时间、年份以及十二生宵

    1. **判断时间**: 在C#中,你可以通过`DateTime`对象的属性来获取时间信息。例如,`DateTime.Now.Hour`返回当前小时,`DateTime.Now.Minute`返回当前分钟,`DateTime.Now.Second`返回当前秒。你可以根据需要组合...

    猜数字游戏_时间判断_次数判断

    这些工具可以帮助我们设置一个计时器,在达到预设时间后触发某个事件,如游戏结束。 其次,次数判断是游戏规则的一部分,它规定了玩家猜测次数的上限。在猜数字游戏中,玩家可能有固定次数尝试猜测正确数字的机会。...

    判断合法的日期时间数据

    在多行文本框每行输入一个日期时间数据,JavaScript代码判断并输出合法的日期时间,例如,输入: 2001-9-5 15:12:5 2018-9-22 你好 2017/6/18 22:2:5 hello Wed Sep 05 2001 15:12:05 哈哈哈哈 Wed Sep 05 2001 15...

    时间判断源码

    4. **if(timeType.equals(0))**:在给定的压缩包文件的文件名中,`if(timeType.equals(0))`看起来是一个条件语句,可能用于检查时间类型的变量`timeType`是否等于0。这可能表示一种特定的时间处理逻辑,比如区分不同...

    GBase数据库中的日期时间类型详解 1.doc

    DATETIME实际上是一个数据类型系列,有28种不同的精度,从只存储年份到精确到毫秒。根据精度的不同,其存储大小范围为3到11个字节。虽然DATETIME需要更多存储空间,但它能存储特定的日期和时间点,适合需要精确时间...

    Matlab判断是否闰年及判断当月天数的函数例程

    例如,如果你正在编写一个程序来处理一系列日期,你可以先检查年份是否为闰年,然后再使用`DNumofMonth`确定特定月份的天数,这样就能确保你的程序能够正确处理所有可能的情况。 总之,`isLeapYear`和`DNumofMonth`...

    JAVA日期判断方法小结

    判断给定的日期是否为合法日期是日期判断中的另一个重要方法。该方法可以使用以下代码实现: ```java public boolean dateCheck(String ldate) { try { String lyearStr = ldate.substring(0, 4); int lyear = ...

Global site tag (gtag.js) - Google Analytics