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(); }