欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

javascript中对Date类型的常用操作小结_基础知识

程序员文章站 2022-04-28 16:37:45
...
javascript中对Date类型的常用操作小结
/** 
3. * 日期时间脚本库方法列表: 
4. * (1)Date.isValiDate:日期合法性验证 
5. * (2)Date.isValiTime:时间合法性验证 
6. * (3)Date.isValiDateTime:日期和时间合法性验证 
7. * (4)Date.prototype.isLeapYear:判断是否闰年 
8. * (5)Date.prototype.format:日期格式化 
9. * (6)Date.stringToDate:字符串转成日期类型 
10. * (7)Date.daysBetween:计算两个日期的天数差 
11. * (8)Date.prototype.dateAdd:日期计算,支持正负数 
12. * (9)Date.prototype.dateDiff:比较日期差:比较两个时期相同的字段,返回相差值 
13. * (10)Date.prototype.toArray:把日期分割成数组:按数组序号分别为:年月日时分秒 
14. * (11)Date.prototype.datePart:取得日期数据信息 
15. */ 
16. 
17. 
18./** 
19. * 日期合法性验证:判断dataStr是否符合formatStr指定的日期格式 
20. * 示例: 
21. * (1)alert(Date.isValiDate('2008-02-29','yyyy-MM-dd'));//true 
22. * (2)alert(Date.isValiDate('aaaa-58-29','yyyy-MM-dd'));//false 
23. * dateStr:必选,日期字符串 
24. * formatStr:可选,格式字符串,可选格式有:(1)yyyy-MM-dd(默认格式)或YYYY-MM-DD (2)yyyy/MM/dd或YYYY/MM/DD (3)MM-dd-yyyy或MM-DD-YYYY (4)MM/dd/yyyy或MM/DD/YYYY 
25. */ 
26.Date.isValiDate = function(dateStr, formatStr) 
27.{ 
28.  if(!dateStr){ 
29.    return false; 
30.  } 
31.  if(!formatStr){ 
32.    formatStr = "yyyy-MM-dd";//默认格式:yyyy-MM-dd  
33.  } 
34.  if(dateStr.length!=formatStr.length){ 
35.    return false; 
36.  }else{ 
37.    if(formatStr=="yyyy-MM-dd"||formatStr=="YYYY-MM-DD"){ 
38.      var r1=/^(((((([02468][048])|([13579][26]))(00))|(\d{2}(([02468][48])|([13579][26]))))\-((((0[13578])|(1[02]))\-(([0-2][0-9])|(3[01])))|(((0[469])|(11))\-(([0-2][0-9])|(30)))|(02\-([0-2][0-9]))))|(\d{2}(([02468][1235679])|([13579][01345789]))\-((((0[13578])|(1[02]))\-(([0-2][0-9])|(3[01])))|(((0[469])|(11))\-(([0-2][0-9])|(30)))|(02\-(([0-1][0-9])|(2[0-8]))))))$/; 
39.      return r1.test(dateStr); 
40.    }else if(formatStr=="yyyy/MM/dd"||formatStr=="YYYY/MM/DD"){ 
41.      var r2=/^(((((([02468][048])|([13579][26]))(00))|(\d{2}(([02468][48])|([13579][26]))))\/((((0[13578])|(1[02]))\/(([0-2][0-9])|(3[01])))|(((0[469])|(11))\/(([0-2][0-9])|(30)))|(02\/([0-2][0-9]))))|(\d{2}(([02468][1235679])|([13579][01345789]))\/((((0[13578])|(1[02]))\/(([0-2][0-9])|(3[01])))|(((0[469])|(11))\/(([0-2][0-9])|(30)))|(02\/(([0-1][0-9])|(2[0-8]))))))$/; 
42.      return r2.test(dateStr); 
43.    }else if(formatStr=="MM-dd-yyyy"||formatStr=="MM-DD-YYYY"){ 
44.      var r3=/^((((((0[13578])|(1[02]))\-(([0-2][0-9])|(3[01])))|(((0[469])|(11))\-(([0-2][0-9])|(30)))|(02\-([0-2][0-9])))\-(((([02468][048])|([13579][26]))(00))|(\d{2}(([02468][48])|([13579][26])))))|(((((0[13578])|(1[02]))\-(([0-2][0-9])|(3[01])))|(((0[469])|(11))\-(([0-2][0-9])|(30)))|(02\-(([0-1][0-9])|(2[0-8])))))\-\d{2}(([02468][1235679])|([13579][01345789])))$/; 
45.      return r3.test(dateStr); 
46.    }else if(formatStr=="MM/dd/yyyy"||formatStr=="MM/DD/YYYY"){ 
47.      var r4=/^((((((0[13578])|(1[02]))\/(([0-2][0-9])|(3[01])))|(((0[469])|(11))\/(([0-2][0-9])|(30)))|(02\/([0-2][0-9])))\/(((([02468][048])|([13579][26]))(00))|(\d{2}(([02468][48])|([13579][26])))))|(((((0[13578])|(1[02]))\/(([0-2][0-9])|(3[01])))|(((0[469])|(11))\/(([0-2][0-9])|(30)))|(02\/(([0-1][0-9])|(2[0-8])))))\/\d{2}(([02468][1235679])|([13579][01345789])))$/; 
48.      return r4.test(dateStr); 
49.    }else{ 
50.      alert("日期格式不正确!"); 
51.      return false; 
52.    } 
53.  } 
54.  return false; 
55.} 
56. 
57. 
58./** 
59. * 时间合法性验证:判断timeStr是否符合formatStr指定的时间格式 
60. * 示例: 
61. * (1)alert(Date.isValiTime('23:59:59','hh:mm:ss'));//true 
62. * (2)alert(Date.isValiTime('24-68-89','hh:mm:ss'));//false 
63. * timeStr:必选,日期字符串 
64. * formatStr:可选,格式字符串,可选格式有:(1)hh:mm:ss(默认格式) (2)hh-mm-ss (3)hh/mm/ss 
65. */ 
66.Date.isValiTime = function(timeStr, formatStr) 
67.{ 
68.  if(!timeStr){ 
69.    return false; 
70.  } 
71.  if(!formatStr){ 
72.    formatStr = "hh:mm:ss";//默认格式:hh:mm:ss  
73.  } 
74.  if(timeStr.length!=formatStr.length){ 
75.    return false; 
76.  }else{ 
77.    if(formatStr=="hh:mm:ss"){ 
78.      var r1=/^(([0-1][0-9])|(2[0-3]))\:([0-5][0-9])\:([0-5][0-9])$/; 
79.      return r1.test(timeStr); 
80.    }else if(formatStr=="hh-mm-ss"){ 
81.      var r2=/^(([0-1][0-9])|(2[0-3]))\-([0-5][0-9])\-([0-5][0-9])$/; 
82.      return r2.test(timeStr); 
83.    }else if(formatStr=="hh/mm/ss"){ 
84.      var r3=/^(([0-1][0-9])|(2[0-3]))\/([0-5][0-9])\/([0-5][0-9])$/; 
85.      return r3.test(timeStr); 
86.    }else{ 
87.      alert("时间格式不正确!"); 
88.      return false; 
89.    } 
90.  } 
91.  return false; 
92.} 
93. 
94. 
95./** 
96. * 日期和时间合法性验证 
97. * 格式:yyyy-MM-dd hh:mm:ss 
98. */ 
99.Date.isValiDateTime = function(dateTimeStr) 
100.{ 
101.  var dateTimeReg=/^(((((([02468][048])|([13579][26]))(00))|(\d{2}(([02468][48])|([13579][26]))))\-((((0[13578])|(1[02]))\-(([0-2][0-9])|(3[01])))|(((0[469])|(11))\-(([0-2][0-9])|(30)))|(02\-([0-2][0-9]))))|(\d{2}(([02468][1235679])|([13579][01345789]))\-((((0[13578])|(1[02]))\-(([0-2][0-9])|(3[01])))|(((0[469])|(11))\-(([0-2][0-9])|(30)))|(02\-(([0-1][0-9])|(2[0-8]))))))(\s{1}(([0-1][0-9])|(2[0-3]))\:([0-5][0-9])\:([0-5][0-9]))?$/ 
102.  return dateTimeReg.test(dateTimeStr); 
103.} 
104. 
105. 
106./** 
107. * 判断闰年 :一般规律为:四年一闰,百年不闰,四百年再闰。 
108. */ 
109.Date.prototype.isLeapYear = function() 
110.{ 
111.  return (this.getYear()%4==0&&((this.getYear()%100!=0)||(this.getYear()%400==0))); 
112.} 
113. 
114. 
115./** 
116. * 日期格式化: 
117. * formatStr:可选,格式字符串,默认格式:yyyy-MM-dd hh:mm:ss 
118. * 约定如下格式: 
119. * (1)YYYY/yyyy/YY/yy 表示年份 
120. * (2)MM/M 月份 
121. * (3)W/w 星期 
122. * (4)dd/DD/d/D 日期 
123. * (5)hh/HH/h/H 时间 
124. * (6)mm/m 分钟 
125. * (7)ss/SS/s/S 秒 
126. * (8)iii 毫秒 
127. */ 
128.Date.prototype.format = function(formatStr) 
129.{ 
130.  var str = formatStr; 
131.  if(!formatStr){ 
132.    str = "yyyy-MM-dd hh:mm:ss";//默认格式  
133.  } 
134.  var Week = ['日','一','二','三','四','五','六']; 
135.   
136.  str=str.replace(/yyyy|YYYY/,this.getFullYear()); 
137.  str=str.replace(/yy|YY/,(this.getYear() % 100)>9?(this.getYear() % 100).toString():'0' + (this.getYear() % 100)); 
138.   
139.  str=str.replace(/MM/,this.getMonth()>=9?(parseInt(this.getMonth())+1).toString():'0' + (parseInt(this.getMonth())+1)); 
140.  str=str.replace(/M/g,(parseInt(this.getMonth())+1)); 
141.   
142.  str=str.replace(/w|W/g,Week[this.getDay()]); 
143.   
144.  str=str.replace(/dd|DD/,this.getDate()>9?this.getDate().toString():'0' + this.getDate()); 
145.  str=str.replace(/d|D/g,this.getDate()); 
146.   
147.  str=str.replace(/hh|HH/,this.getHours()>9?this.getHours().toString():'0' + this.getHours()); 
148.  str=str.replace(/h|H/g,this.getHours()); 
149.  str=str.replace(/mm/,this.getMinutes()>9?this.getMinutes().toString():'0' + this.getMinutes()); 
150.  str=str.replace(/m/g,this.getMinutes()); 
151.   
152.  str=str.replace(/ss|SS/,this.getSeconds()>9?this.getSeconds().toString():'0' + this.getSeconds()); 
153.  str=str.replace(/s|S/g,this.getSeconds()); 
154.   
155.  str=str.replace(/iii/g,this.getMilliseconds()

以上这篇javascript中对Date类型的常用操作小结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关标签: javascript Date