js對時間全部的操做類和代碼

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
//---------------------------------------------------
// 判斷閏年
//---------------------------------------------------
Date.prototype.isLeapYear = function ()
{
return (0== this .getYear()%4&&(( this .getYear()%100!=0)||( this .getYear()%400==0)));
  }
 
//---------------------------------------------------
// 日期格式化
// 格式 YYYY/yyyy/YY/yy 表示年份
// MM/M 月份
// W/w 星期
// dd/DD/d/D 日期
// hh/HH/h/H 時間
// mm/m 分鐘
// ss/SS/s/S 秒
//---------------------------------------------------
Date.prototype.Format = function (formatStr)
{
var str = formatStr;
var Week = [ '日' , '一' , '二' , '三' , '四' , '五' , '六' ];
 
str=str.replace(/yyyy|YYYY/, this .getFullYear());
str=str.replace(/yy|YY/,( this .getYear() % 100)>9?( this .getYear() % 100).toString(): '0' + ( this .getYear() % 100));
  
str=str.replace(/MM/, this .getMonth()>9? this .getMonth().toString(): '0' + this .getMonth());
  str=str.replace(/M/g, this .getMonth());
 
str=str.replace(/w|W/g,Week[ this .getDay()]);
 
str=str.replace(/dd|DD/, this .getDate()>9? this .getDate().toString(): '0' + this .getDate());
  str=str.replace(/d|D/g, this .getDate());
 
str=str.replace(/hh|HH/, this .getHours()>9? this .getHours().toString(): '0' + this .getHours());
  str=str.replace(/h|H/g, this .getHours());
str=str.replace(/mm/, this .getMinutes()>9? this .getMinutes().toString(): '0' + this .getMinutes());
  str=str.replace(/m/g, this .getMinutes());
 
str=str.replace(/ss|SS/, this .getSeconds()>9? this .getSeconds().toString(): '0' + this .getSeconds());
  str=str.replace(/s|S/g, this .getSeconds());
 
return str;
}
 
//+---------------------------------------------------
//| 求兩個時間的天數差 日期格式爲 YYYY-MM-dd
//+---------------------------------------------------
function daysBetween(DateOne,DateTwo)
{
var OneMonth = DateOne.substring(5,DateOne.lastIndexOf ( '-' ));
var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ( '-' )+1);
var OneYear = DateOne.substring(0,DateOne.indexOf ( '-' ));
 
var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf ( '-' ));
var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ( '-' )+1);
var TwoYear = DateTwo.substring(0,DateTwo.indexOf ( '-' ));
 
var cha=((Date.parse(OneMonth+ '/' +OneDay+ '/' +OneYear)- Date.parse(TwoMonth+ '/' +TwoDay+ '/' +TwoYear))/86400000);
  return Math.abs(cha);
}
 
 
//+---------------------------------------------------
//| 日期計算
//+---------------------------------------------------
Date.prototype.DateAdd = function (strInterval, Number) {
var dtTmp = this ;
switch (strInterval) {
case 's' : return new Date(Date.parse(dtTmp) + (1000 * Number));
case 'n' : return new Date(Date.parse(dtTmp) + (60000 * Number));
case 'h' : return new Date(Date.parse(dtTmp) + (3600000 * Number));
case 'd' : return new Date(Date.parse(dtTmp) + (86400000 * Number));
case 'w' : return new Date(Date.parse(dtTmp) + ((86400000 * 7) * Number));
case 'q' : return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number*3, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
  case 'm' : return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
  case 'y' : return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
  }
}
 
//+---------------------------------------------------
//| 比較日期差 dtEnd 格式爲日期型或者 有效日期格式字符串
//+---------------------------------------------------
Date.prototype.DateDiff = function (strInterval, dtEnd) {
var dtStart = this ;
if ( typeof dtEnd == 'string' ) //若是是字符串轉換爲日期型
{
dtEnd = StringToDate(dtEnd);
}
switch (strInterval) {
case 's' : return parseInt((dtEnd - dtStart) / 1000);
case 'n' : return parseInt((dtEnd - dtStart) / 60000);
case 'h' : return parseInt((dtEnd - dtStart) / 3600000);
case 'd' : return parseInt((dtEnd - dtStart) / 86400000);
case 'w' : return parseInt((dtEnd - dtStart) / (86400000 * 7));
case 'm' : return (dtEnd.getMonth()+1)+((dtEnd.getFullYear()-dtStart.getFullYear())*12) - (dtStart.getMonth()+1);
  case 'y' : return dtEnd.getFullYear() - dtStart.getFullYear();
}
}
 
//+---------------------------------------------------
//| 日期輸出字符串,重載了系統的toString方法
//+---------------------------------------------------
Date.prototype.toString = function (showWeek)
{
var myDate= this ;
var str = myDate.toLocaleDateString();
if (showWeek)
{
var Week = [ '日' , '一' , '二' , '三' , '四' , '五' , '六' ];
str += ' 星期' + Week[myDate.getDay()];
}
return str;
}
 
//+---------------------------------------------------
//| 日期合法性驗證
//| 格式爲:YYYY-MM-DD或YYYY/MM/DD
//+---------------------------------------------------
function IsValidDate(DateStr)
{
var sDate=DateStr.replace(/(^\s+|\s+$)/g, '' ); //去兩邊空格;
if (sDate== '' ) return true ;
//若是格式知足YYYY-(/)MM-(/)DD或YYYY-(/)M-(/)DD或YYYY-(/)M-(/)D或YYYY-(/)MM-(/)D就替換爲''
//數據庫中,合法日期能夠是:YYYY-MM/DD(2003-3/21),數據庫會自動轉換爲YYYY-MM-DD格式
var s = sDate.replace(/[\d]{ 4,4 }[\-/]{ 1 }[\d]{ 1,2 }[\-/]{ 1 }[\d]{ 1,2 }/g, '' );
  if (s== '' ) //說明格式知足YYYY-MM-DD或YYYY-M-DD或YYYY-M-D或YYYY-MM-D
{
var t= new Date(sDate.replace(/\-/g, '/' ));
var ar = sDate.split(/[-/:]/);
if (ar[0] != t.getYear() || ar[1] != t.getMonth()+1 || ar[2] != t.getDate())
{
//alert('錯誤的日期格式!格式爲:YYYY-MM-DD或YYYY/MM/DD。注意閏年。');
return false ;
}
}
else
{
//alert('錯誤的日期格式!格式爲:YYYY-MM-DD或YYYY/MM/DD。注意閏年。');
return false ;
}
return true ;
}
 
//+---------------------------------------------------
//| 日期時間檢查
//| 格式爲:YYYY-MM-DD HH:MM:SS
//+---------------------------------------------------
function CheckDateTime(str)
{
var reg = /^(\d+)-(\d{ 1,2 })-(\d{ 1,2 }) (\d{ 1,2 }):(\d{ 1,2 }):(\d{ 1,2 })$/;
var r = str.match(reg);
if (r== null ) return false ;
r[2]=r[2]-1;
var d= new Date(r[1],r[2],r[3],r[4],r[5],r[6]);
if (d.getFullYear()!=r[1]) return false ;
if (d.getMonth()!=r[2]) return false ;
if (d.getDate()!=r[3]) return false ;
if (d.getHours()!=r[4]) return false ;
if (d.getMinutes()!=r[5]) return false ;
if (d.getSeconds()!=r[6]) return false ;
return true ;
}
 
//+---------------------------------------------------
//| 把日期分割成數組
//+---------------------------------------------------
Date.prototype.toArray = function ()
{
var myDate = this ;
var myArray = Array();
myArray[0] = myDate.getFullYear();
myArray[1] = myDate.getMonth();
myArray[2] = myDate.getDate();
myArray[3] = myDate.getHours();
myArray[4] = myDate.getMinutes();
myArray[5] = myDate.getSeconds();
return myArray;
}
 
//+---------------------------------------------------
//| 取得日期數據信息
//| 參數 interval 表示數據類型
//| y 年 m月 d日 w星期 ww周 h時 n分 s秒
//+---------------------------------------------------
Date.prototype.DatePart = function (interval)
{
var myDate = this ;
var partStr= '' ;
var Week = [ '日' , '一' , '二' , '三' , '四' , '五' , '六' ];
switch (interval)
{
case 'y' :partStr = myDate.getFullYear(); break ;
case 'm' :partStr = myDate.getMonth()+1; break ;
case 'd' :partStr = myDate.getDate(); break ;
case 'w' :partStr = Week[myDate.getDay()]; break ;
case 'ww' :partStr = myDate.WeekNumOfYear(); break ;
case 'h' :partStr = myDate.getHours(); break ;
case 'n' :partStr = myDate.getMinutes(); break ;
case 's' :partStr = myDate.getSeconds(); break ;
}
return partStr;
}
 
//+---------------------------------------------------
//| 取得當前日期所在月的最大天數
//+---------------------------------------------------
Date.prototype.MaxDayOfDate = function ()
{
var myDate = this ;
var ary = myDate.toArray();
var date1 = ( new Date(ary[0],ary[1]+1,1));
var date2 = date1.dateAdd(1, 'm' ,1);
var result = dateDiff(date1.Format( 'yyyy-MM-dd' ),date2.Format( 'yyyy-MM-dd' ));
return result;
}
 
//+---------------------------------------------------
//| 取得當前日期所在周是一年中的第幾周
//+---------------------------------------------------
Date.prototype.WeekNumOfYear = function ()
{
var myDate = this ;
var ary = myDate.toArray();
var year = ary[0];
var month = ary[1]+1;
var day = ary[2];
document.write( '< script language=VBScript\> \n' );
document.write( 'myDate = DateValue(' '+month+' - '+day+' - '+year+' ') \n' );
document.write( 'result = DatePart(' ww ', myDate) \n' );
document.write( ' \n' );
return result;
}
 
//+---------------------------------------------------
//| 字符串轉成日期類型
//| 格式 MM/dd/YYYY MM-dd-YYYY YYYY/MM/dd YYYY-MM-dd
//+---------------------------------------------------
function StringToDate(DateStr)
{
 
var converted = Date.parse(DateStr);
var myDate = new Date(converted);
if (isNaN(myDate))
{
//var delimCahar = DateStr.indexOf('/')!=-1?'/':'-';
var arys= DateStr.split( '-' );
myDate = new Date(arys[0],--arys[1],arys[2]);
}
return myDate;
}


Js獲取當前日期時間及其它操做數據庫

var myDate = new Date(); myDate.getYear(); //獲取當前年份(2位)數組

  myDate.getFullYear(); //獲取完整的年份(4位,1970-????)   this

myDate.getMonth(); //獲取當前月份(0-11,0表明1月)   spa

myDate.getDate(); //獲取當前日(1-31)   prototype

myDate.getDay(); //獲取當前星期X(0-6,0表明星期天)   code

myDate.getTime(); //獲取當前時間(從1970.1.1開始的毫秒數)   orm

myDate.getHours(); //獲取當前小時數(0-23)   ip

myDate.getMinutes(); //獲取當前分鐘數(0-59)   ci

myDate.getSeconds(); //獲取當前秒數(0-59)   字符串

myDate.getMilliseconds(); //獲取當前毫秒數(0-999)   

myDate.toLocaleDateString(); //獲取當前日期   

var mytime=myDate.toLocaleTimeString(); //獲取當前時間   

myDate.toLocaleString( ); //獲取日期與時間
日期時間腳本庫方法列表
Date.prototype.isLeapYear 判斷閏年

  Date.prototype.Format 日期格式化   

Date.prototype.DateAdd 日期計算   

Date.prototype.DateDiff 比較日期差   

Date.prototype.toString 日期轉字符串

  Date.prototype.toArray 日期分割爲數組   

Date.prototype.DatePart 取日期的部分信息   

Date.prototype.MaxDayOfDate 取日期所在月的最大天數   

Date.prototype.WeekNumOfYear 判斷日期所在年的第幾周   

StringToDate 字符串轉日期型 IsValidDate 驗證日期有效性   

CheckDateTime 完整日期時間檢查   

daysBetween 日期天數差  


//日期加減 function addDate(dateStr,days){        var d=new Date(Date.parse(dateStr.replace(/-/g, "/")))        d.setDate(d.getDate()+days);        var m=d.getMonth()+1;        return d.getFullYear()+'-'+m+'-'+d.getDate();      }

相關文章
相關標籤/搜索