做项目过程中,找到的一些js常用时间处理函数

简介: 1、把JS里面的Date规范输出为“YYYY-MM-DD HH:mm:SS”的字符串把下面的代码复制到你的JS里,Date对象就可以直接调用toCommonCase(): Date.

1、把JS里面的Date规范输出为“YYYY-MM-DD HH:mm:SS”的字符串
  1. 把下面的代码复制到你的JS里,Date对象就可以直接调用toCommonCase():

  2. Date.prototype.toCommonCase=function(){
  3. var xYear=this.getYear();
  4. xYear=xYear+1900;

  5. var xMonth=this.getMonth()+1;
  6. if(xMonth10){
  7. xMonth="0"+xMonth;
  8. }

  9. var xDay=this.getDate();
  10. if(xDay10){
  11. xDay="0"+xDay;
  12. }

  13. var xHours=this.getHours();
  14. if(xHours10){
  15. xHours="0"+xHours;
  16. }

  17. var xMinutes=this.getMinutes();
  18. if(xMinutes10){
  19. xMinutes="0"+xMinutes;
  20. }

  21. var xSeconds=this.getSeconds();
  22. if(xSeconds10){
  23. xSeconds="0"+xSeconds;
  24. }
  25. return xYear+"-"+xMonth+"-"+xDay+" "+xHours+":"+xMinutes+":"+xSeconds;
  26. }

2、日期格式校验
  1. //判断输入的内容是否为日期格式
  2. function checkDateFormate(Field) {
  3.     var inputDateValue = Field.value;
  4.     var desc = Field.description;
  5.     if(inputDateValue == null || inputDateValue == '') {
  6.        return false;
  7.     }

  8.     //获取输入字符串的长度
  9.     var inputValueLength = inputDateValue.length;
  10.     //如果满足下面判断的所有条件才算合法的日期,否则不合法
  11.     if(checkNumeric(inputDateValue) && checkLegth(inputValueLength) && checkSpecialChar(inputDateValue) ) {
  12.        return true;
  13.     }else {
  14. errorMessage("请输入合法的" + desc +"\n类型为日期,格式为YYYY-MM-DD 或者YYYYMMDD");
  15.        Field.focus();
  16.        return false;
  17.     }
  18. }

  19. //日期只能是8~10位
  20. function checkLegth(length) {
  21.     if(length 8 || length > 10) {
  22.        return false;
  23.     }
  24.     return true;
  25. }

  26. //如果输入的内容中包含‘-’,则按照‘-’分割来去年月日,否则直接按照位数取
  27. function checkSpecialChar(inputDateValue) {
  28.     var index = inputDateValue.indexOf('-');
  29.     var year = 0;
  30.     var month = 0;
  31.     var day = 0;
  32.     if(index > -1) {
  33.        var lastIndex = inputDateValue.lastIndexOf('-');
  34.        //只能是YYYY-M-DD或者YYYY-MM-DD的形式
  35.        if(lastIndex - index 1 || lastIndex - index > 3) {
  36.            return false;
  37.        }
  38.        var arrDate = inputDateValue.split('-');
  39.            year = arrDate[0];
  40.            month = arrDate[1];
  41.            day = arrDate[2];
  42.        } else {
  43.            year = inputDateValue.substring(0,4);
  44.            month = inputDateValue.substring(4,6);
  45.            day = inputDateValue.substring(6,8);
  46.        }
  47.        if(Number(month) > 12 || Number(day) > 31 ||Number(month)1
  48.                            || Number(day)1 || year.length != 4) {
  49.            return false;
  50.     } else if(day > getLastDayOfMonth(Number(year),Number(month))) {
  51.            return false;
  52.     }
  53.     return true;
  54. }

  55. //判断输入的内容将‘-’替换成为数字1后,是否全部为数字
  56. function checkNumeric(inputDateValue) {
  57.     var replacedValue = inputDateValue.replace(/-/g,'1');
  58.     return isNumeric(replacedValue);
  59. }

  60. //判断是否为数字
  61. function isNumeric(strValue)
  62. {
  63.   var result = regExpTest(strValue,/\d*[.]?\d*/g);
  64.   return result;
  65. }

  66. function regExpTest(source,re)
  67. {
  68.   var result = false

  69.   if(source==null || source=="")
  70.     return false;
  71.   if(source==re.exec(source))
  72.     result = true;
  73.   return result;
  74. }


  75. //获得一个月中的最后一天
  76. function getLastDayOfMonth(year,month){
  77.     var days=0;
  78.     switch(month){
  79.     case 1: case 3: case 5: case 7: case 8: case 10: case 12: days=31;break;
  80.     case 4: case 6: case 9: case 11: days=30;break;
  81.     case 2: if(isLeapYear(year)) days=29;else days=28;break;
  82.     }
  83.     return days;
  84. }

  85. //判断是否为闰年
  86. function isLeapYear(year){
  87.     if((year %4==0 && year %100!=0) || (year %400==0)) return true;
  88.     else return false;
  89. }

3、字符串转日期
  1. function strToDate(str)
  2. {
  3.   var arys= new Array();
  4.   arys=str.split('-');
  5.   //1月份是用0来表示的,所以2002年10月12日,应表示为2002-9-12
  6. var newDate=new Date(arys[0],arys[1]-1,arys[2]);
  7.   return newDate;
  8. }

4、日期转字符串
  1. function strToDate(str)
  2. {
  3.   var val=Date.parse(str);
  4.   var newDate=new Date(val);
  5.   return newDate;
  6. }

5、自己写的jQuery时间判断,使用了上面的某些函数
  1. $(":button").click(function(){
  2.         if($(":text:eq(0)").val() =='' ||$(":text:eq(1)").val() =='' ){
  3.             alert("请先填写查询时间!");
  4.             return false;
  5.         }checkSpecialChar
  6.         if(!checkSpecialChar($(":text:eq(0)").val()) || !checkSpecialChar($(":text:eq(0)").val()) ){
  7.             alert("时间格式错误!");
  8.             return false;
  9.         }
  10.         var arys1= new Array();
  11.         var arys2= new Array();
  12.         arys1=$(":text:eq(0)").val().split('-');
  13.         arys2=$(":text:eq(1)").val().split('-');
  14.         
  15.   //1月份是用0来表示的,所以2002年10月12日,应表示为2002-9-12
  16.         var newDate1 = new Date(arys1[0],arys1[1]-1,arys1[2]);
  17.         var newDate2 = new Date(arys2[0],arys2[1]-1,arys2[2]);
  18.         
  19.         if(newDate1 > newDate2 ){
  20.             alert("起始日期不能大于终止日期!");
  21.             return false;
  22.         }
  23.         $("form[name='form1']").submit();
  24.     });


相关文章
|
2天前
|
算法 JavaScript 前端开发
第一个算法项目 | JS实现并查集迷宫算法Demo学习
本文是关于使用JavaScript实现并查集迷宫算法的中国象棋demo的学习记录,包括项目运行方法、知识点梳理、代码赏析以及相关CSS样式表文件的介绍。
第一个算法项目 | JS实现并查集迷宫算法Demo学习
|
3天前
|
JavaScript 前端开发 安全
JavaScript函数详解
JavaScript函数的详细解析,包括函数的定义和调用方式(如一般格式、匿名函数、构造函数、自调用函数、箭头函数和严格模式)、函数参数(arguments对象、可变参数、默认参数值)、闭包的概念和应用实例。
JavaScript函数详解
|
6天前
vite.config.js中vite.defineConfig is not defined以及创建最新版本的vite项目
本文讨论了在配置Vite项目时遇到的`vite.defineConfig is not defined`错误,这通常是由于缺少必要的导入语句导致的。文章还涉及了如何创建最新版本的Vite项目以及如何处理`configEnv is not defined`的问题。
16 3
vite.config.js中vite.defineConfig is not defined以及创建最新版本的vite项目
|
3天前
|
JavaScript 前端开发
JavaScript函数可以返回两个值
JavaScript函数可以返回两个值
|
3天前
|
自然语言处理 分布式计算 JavaScript
JavaScript函数
JavaScript函数
|
13天前
|
JSON JavaScript 前端开发
JavaScript第五天(函数,this,严格模式,高阶函数,闭包,递归,正则,ES6)高级
JavaScript第五天(函数,this,严格模式,高阶函数,闭包,递归,正则,ES6)高级
|
6天前
|
JSON JavaScript 数据格式
手写JS实现深拷贝函数
本文介绍了如何实现一个深拷贝函数`deepClone`,该函数可以处理对象和数组的深拷贝,确保拷贝后的对象与原始对象在内存中互不干扰。通过递归处理对象的键值对和数组的元素,实现了深度复制,同时保留了函数类型的值和基础类型的值。
13 3
|
3天前
|
缓存 JavaScript 前端开发
了解js基础知识中的作用域和闭包以及闭包的一些应用场景,浅析函数柯里化
该文章详细讲解了JavaScript中的作用域、闭包概念及其应用场景,并简要分析了函数柯里化的使用。
了解js基础知识中的作用域和闭包以及闭包的一些应用场景,浅析函数柯里化
|
6天前
|
前端开发 数据可视化 开发者
D3.js 内置的动画函数
D3.js 内置的动画函数
|
6天前
|
JavaScript 前端开发
JavaScript 函数参数
JavaScript 函数参数
21 3