javascript date
来源:互联网 发布:买家淘宝贷款怎么申请 编辑:程序博客网 时间:2024/06/05 05:38
1. //用户名等最后两位隐藏
2. <script language=Javascript>
3. String.prototype.Left = function(len){
4. if(isNaN(len)||len==null){
5. len = 0;
6. } else {
7. if(parseInt(len)<0||parseInt(len)>this.length) {
8. len = 0;
9. }
10. }
11. return this.substr(0,this.length-len)+'**';
12. }
13. //日期自动补零程序
14. function appendZero(n)
15. {
16. return(("00"+ n).substr(("00"+ n).length-2));
17. }
18. //获得当年当月最大天数
19. function GetMonthMaxDay(theYear,theMonth){
20. var theDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
21. var theMonthDay = 0, tmpYear = this.formatYear(theYear);
22. theMonthDay = theDays[theMonth];
23. if (theMonth == 1){ //theMonth is February
24. if (((tmpYear % 4 == 0) && (tmpYear % 100 != 0)) || (tmpYear % 400 == 0)){
25. theMonthDay++;
26. }
27. }
28. return(theMonthDay);
29. }
30. //把年份格式化成4位
31. function formatYear(theYear){
32. var tmpYear = parseInt(theYear,10);
33. if (tmpYear < 100){
34. tmpYear += 1900;
35. if (tmpYear < 1940){
36. tmpYear += 100;
37. }
38. }
39. if (tmpYear < this.MinYear){
40. tmpYear = this.MinYear;
41. }
42. if (tmpYear > this.MaxYear){
43. tmpYear = this.MaxYear;
44. }
45. return(tmpYear);
46. }
47. //对javascript日期进行格式化
48. //formattype是返回的时间类型
49. //返回:返回时间串
50. function formatDate(day,formattype){
51. var dateString = "";
52.
53. var thisyear = formatYear(day.getFullYear());
54. var thismonth = appendZero(day.getMonth()+1);
55. var thisday = appendZero(day.getDate());
56. var thishour = appendZero(day.getHours());
57. var thismin = appendZero(day.getMinutes());
58. var thissec = appendZero(day.getSeconds());
59. switch (formattype){
60. case 0:
61. dateString = thisyear + "年" + thismonth + "月" + thisday + "日";
62. break;
63. case 1:
64. dateString = thisyear + "-" + thismonth + "-" + thisday;
65. break;
66. case 2:
67. dateString = thisyear + "-" + thismonth + "-" +thisday+ " " + appendZero(thishour) + ":" + appendZero(thismin) + ":" +appendZero(thissec);
68. break;
69. default:
70. dateString = thisyear + "-" + thismonth + "-" + thisday;
71. }
72. return dateString;
73. }
74. //取得本周第一天
75. function getWeekFirstDay(formattype)
76. {
77. var Nowdate=new Date();
78. var WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);
79. return formatDate(WeekFirstDay,formattype);
80. }
81. //取得本周第七天
82. function getWeekLastDay(formattype)
83. {
84. var Nowdate=new Date();
85. var WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);
86. var WeekLastDay=new Date((WeekFirstDay/1000+6*86400)*1000);
87. return formatDate(WeekLastDay,formattype);
88. }
89. function testDate() {
90. var Nowdate=new Date();
91. //本月
92. var MonthFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth(),1);
93. alert(MonthFirstDay.getFullYear())
94. alert(appendZero(MonthFirstDay.getMonth()+1))
95. //上月
96. var lastMonth = new Date(Nowdate.getFullYear(),Nowdate.getMonth()-1,1);
97. alert(lastMonth.getFullYear())
98. alert(appendZero(lastMonth.getMonth()+1))
99.
100.
101. }
102. //取得本月第一天
103. function getMonthFirstDay(formattype)
104. {
105. var Nowdate=new Date();
106. var MonthFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth(),1);
107. return formatDate(MonthFirstDay,formattype);
108. }
109. //取得本月最后一天
110. function getMonthLastDay(formattype)
111. {
112. var Nowdate=new Date();
113. var MonthNextFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth()+1,1);
114. var MonthLastDay=new Date(MonthNextFirstDay-86400000);
115. return formatDate(MonthLastDay,formattype);
116. }
117. function getDateFromString(strDate){
118.
119. var arrYmd = strDate.split("-");
120. for(var i=0;i<arrYmd.length;i++){
121. if(arrYmd[i].length>1 && arrYmd[i].indexOf("0")==0)
122. arrYmd[i]= arrYmd[i].substring(1);
123. }
124. var numYear = parseInt(arrYmd[0]);
125. var numMonth = parseInt(arrYmd[1]) - 1;
126. var numDay = parseInt(arrYmd[2]);
127. return new Date(numYear, numMonth, numDay);
128. }
129. /*
130. 下列函数返回需要的时间 偏移值不能大于30
131. 参数:dadd是日偏移值,-表示向前推,+向后推
132. formattype是返回的时间类型
133. 返回:返回时间串
134. */
135. function getDiffDate(dadd,formattype)
136. {
137. //可以加上错误处理
138. var a = new Date();
139. a = a.valueOf();
140. a = a + dadd * 24 * 60 * 60 * 1000;
141. a = new Date(a);
142. return formatDate(a,formattype);
143. }
144.
145. //getDiffDate(+2,0)
146.
147. //取得指定日期的年月日时分秒
148. //参数:dateValue 是格式形如:2007/04/05
149. function TimeCom(dateValue){
150. var newCom = new Date(dateValue);
151. this.year = newCom.getFullYear();
152. this.month = newCom.getMonth()+1;
153. this.day = newCom.getDate();
154. this.hour = newCom.getHours();
155. this.minute = newCom.getMinutes();
156. this.second = newCom.getSeconds();
157. this.msecond = newCom.getMilliseconds();
158. this.week = newCom.getDay();
159. }
160.
161. //取得两个日期之间的时间差
162. // 参数:interval : y或year-表示取得相差的年份 n或month-表示相差的月份 d或day表示相差的天数h或hour-表示相差的小时 m或minute-表示相差的分钟 s或second-表示相差的秒数 ms或msecond-表示相差的毫秒数w或week-表示相差的周数
163. // date1:起始日期
164. // date2:结束日期
165. function DateDiff(interval,date1,date2)
166. {
167. var TimeCom1 = new TimeCom(date1);
168. var TimeCom2 = new TimeCom(date2);
169. var result;
170. switch(String(interval).toLowerCase())
171. {
172. case "y":
173. case "year":
174. result = TimeCom1.year-TimeCom2.year;
175. break;
176. case "n":
177. case "month":
178. result = (TimeCom1.year-TimeCom2.year)*12+(TimeCom1.month-TimeCom2.month);
179. break;
180. case "d":
181. case "day":
182. result =Math.round((Date.UTC(TimeCom1.year,TimeCom1.month-1,TimeCom1.day)-Date.UTC(TimeCom2.year,TimeCom2.month-1,TimeCom2.day))/(1000*60*60*24));
183. break;
184. case "h":
185. case "hour":
186. result =Math.round((Date.UTC(TimeCom1.year,TimeCom1.month-1,TimeCom1.day,TimeCom1.hour)-Date.UTC(TimeCom2.year,TimeCom2.month-1,TimeCom2.day,TimeCom2.hour))/(1000*60*60));
187. break;
188. case "m":
189. case "minute":
190. result =Math.round((Date.UTC(TimeCom1.year,TimeCom1.month-1,TimeCom1.day,TimeCom1.hour,TimeCom1.minute)-Date.UTC(TimeCom2.year,TimeCom2.month-1,TimeCom2.day,TimeCom2.hour,TimeCom2.minute))/(1000*60));
191. break;
192. case "s":
193. case "second":
194. result =Math.round((Date.UTC(TimeCom1.year,TimeCom1.month-1,TimeCom1.day,TimeCom1.hour,TimeCom1.minute,TimeCom1.second)-Date.UTC(TimeCom2.year,TimeCom2.month-1,TimeCom2.day,TimeCom2.hour,TimeCom2.minute,TimeCom2.second))/1000);
195. break;
196. case "ms":
197. case "msecond":
198. result =Date.UTC(TimeCom1.year,TimeCom1.month-1,TimeCom1.day,TimeCom1.hour,TimeCom1.minute,TimeCom1.second,TimeCom1.msecond)-Date.UTC(TimeCom2.year,TimeCom2.month-1,TimeCom2.day,TimeCom2.hour,TimeCom2.minute,TimeCom2.second,TimeCom1.msecond);
199. break;
200. case "w":
201. case "week":
202. result =Math.round((Date.UTC(TimeCom1.year,TimeCom1.month-1,TimeCom1.day)-Date.UTC(TimeCom2.year,TimeCom2.month-1,TimeCom2.day))/(1000*60*60*24))% 7;
203. break;
204. default:
205. result = "invalid";
206. }
207. return(result);
208. }
209. /*
210. 下列函数返回需要的时间 偏移值不能大于30
211. 参数:interval : y或year-表示取得相差的年份 n或month-表示相差的月份 d或day表示相差的天数h或hour-表示相差的小时 m或minute-表示相差的分钟 s或second-表示相差的秒数 ms或msecond-表示相差的毫秒数w或week-表示相差的周数
212. num是偏移值,-表示向前推,+向后推
213. dateValue 指定的日期
214. formattype是返回的时间类型
215. 返回:返回时间串
216. */
217. function DateAdd(interval,num,dateValue,formattype)
218. {
219. var newCom = new TimeCom(dateValue);
220. switch(String(interval).toLowerCase())
221. {
222. case "y": case "year": newCom.year += num; break;
223. case "n": case "month": newCom.month += num; break;
224. case "d": case "day": newCom.day += num; break;
225. case "h": case "hour": newCom.hour += num; break;
226. case "m": case "minute": newCom.minute += num; break;
227. case "s": case "second": newCom.second += num; break;
228. case "ms": case "msecond": newCom.msecond += num; break;
229. case "w": case "week": newCom.day += num*7; break;
230. default: return("invalid");
231. }
232. var now = newCom.year+"/"+newCom.month+"/"+newCom.day+" "+newCom.hour+":"+newCom.minute+":"+newCom.second;
233. return formatDate(new Date(now),formattype);
234. }
235. //alert(DateAdd('d',-30,new Date(),0));
236. //取得当前日期
237. function getToDay(formattype){
238. var Nowdate=new Date();
239. M=Number(Nowdate.getMonth())+1;
240. Nowdate = new Date(Nowdate.getFullYear()+"/"+M+"/"+Nowdate.getDate());
241. return formatDate(Nowdate,formattype);
242. }
243. //上月第一天
244. function getPreviousFirstDay(formattype)
245. {
246. var Nowdate=new Date();
247. var MonthFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth()-1,1);
248. return formatDate(MonthFirstDay,formattype);
249. }
250.
251. //上月最后一天
252. function getPreviousLastDay(formattype)
253. {
254. var Nowdate=new Date();
255. var MonthFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth(),1);
256. return formatDate(new Date(MonthFirstDay-86400000),formattype);
257. }
258. //上周第一天
259. function getPreviousFirstWeekDay(formattype)
260. {
261. var Nowdate=new Date();
262. var WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);
263. WeekFirstDay=new Date(WeekFirstDay-86400000*7);
264. return formatDate(WeekFirstDay,formattype);
265. }
266. //上周最后一天
267. function showPreviousLastWeekDay(formattype)
268. {
269. var Nowdate=new Date();
270. var WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);
271. WeekFirstDay = new Date(WeekFirstDay-86400000);
272. return formatDate(WeekFirstDay,formattype);
273. }
274. //上一天
275. function getPreviousDay(formattype)
276. {
277. var MonthFirstDay=new Date();
278. MonthFirstDay = new Date(MonthFirstDay-86400000);
279. return formatDate(MonthFirstDay,formattype);
280. }
281. //下一天
282. function getNextDay(formattype)
283. {
284. var MonthFirstDay=new Date();
285. MonthFirstDay = new Date((MonthFirstDay/1000+86400)*1000);
286. return formatDate(MonthFirstDay,formattype);
287. }
288. //下周第一天
289. function getNextFirstWeekDay(formattype)
290. {
291. var Nowdate=new Date();
292. var WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);
293. var MonthFirstDay=new Date((WeekFirstDay/1000+6*86400)*1000);
294. MonthFirstDay=new Date((MonthFirstDay/1000+86400)*1000);
295. return formatDate(MonthFirstDay,formattype);
296. }
297. //下周最后一天
298. function getNextLastWeekDay(formattype)
299. {
300. var Nowdate=new Date();
301. var WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);
302. var WeekLastDay=new Date((WeekFirstDay/1000+6*86400)*1000);
303. var MonthFirstDay=new Date((WeekLastDay/1000+7*86400)*1000);
304. return formatDate(MonthFirstDay,formattype);
305. }
306. //下月第一天
307. function getNextFirstDay(formattype)
308. {
309. var Nowdate=new Date();
310. var MonthFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth(),1);
311. MonthFirstDay=new Date(MonthFirstDay.getYear(),MonthFirstDay.getMonth()+1,1);
312. return formatDate(MonthFirstDay,formattype);
313. }
314. //下月最后一天
315. function getNextLastDay(formattype)
316. {
317. var Nowdate=new Date();
318. var MonthFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth(),1);
319. MonthFirstDay=new Date(new Date(MonthFirstDay.getYear(),MonthFirstDay.getMonth()+2,1)-86400000);
320. return formatDate(MonthFirstDay,formattype);
321. }
322. /*
323. 测试代码:
324. <input name=haha type=button value="本周第一天" onclick=alert(getWeekFirstDay(0))><br />
325. <input name=haha type=button value="本周第七天" onclick=alert(getWeekLastDay(0))><br />
326. <input name=haha type=button value="本月第一天" onclick=alert(getMonthFirstDay(0))><br />
327. <input name=haha type=button value="本月最后一天" onclick=alert(getMonthLastDay(0))><br />
328. <input name=haha type=button value="推前两天" onclick=alert(getDiffDate(-2,0))><br />
329. <input name=haha type=button value="推后两天" onclick=alert(getDiffDate(2,0))><br />
330. <input name=haha type=button value="相差多个?" onclick=alert(DateDiff('d','2007/04/05','2008/01/02'))><br />
331. <input name=haha type=button value="日期随意加减" onclick=alert(DateAdd('d',2,'2007/04/05',0))><br />
332.
333. <input name=haha type=button value="取得当前日期" onclick=alert(getToDay(0))><br />
334. <input name=haha type=button value="取得上月第一天" onclick=alert(getPreviousFirstDay(0))><br />
335. <input name=haha type=button value="取得上月最后一天" onclick=alert(getPreviousLastDay(0))><br />
336. <input name=haha type=button value="取得上周第一天" onclick=alert(getPreviousFirstWeekDay(0))><br />
337. <input name=haha type=button value="取得上周最后一天" onclick=alert(showPreviousLastWeekDay(0))><br />
338.
339. <input name=haha type=button value="昨天" onclick=alert(getPreviousDay(0))><br />
340. <input name=haha type=button value="今天" onclick=alert(getToDay(0))><br />
341. <input name=haha type=button value="明天" onclick=alert(getNextDay(0))><br />
342. <input name=haha type=button value="下周第一天" onclick=alert(getNextFirstWeekDay(0))><br />
343. <input name=haha type=button value="下周最后一天" onclick=alert(getNextLastWeekDay(0))><br />
344. <input name=haha type=button value="下月第一天" onclick=alert(getNextFirstDay(0))><br />
345. <input name=haha type=button value="下月最后一天" onclick=alert(getDateFromString(2007-07-07))><br />
346. <input id=button type=button value="test" onclick=alert('weixinjie'.Left(2))>
347.
348. <input id=button type=button value="tt" onclick=testDate()>
349.
350. */
351. </script>
- JavaScript date
- JavaScript Date
- javascript date
- Javascript --date
- javascript-date
- javascript.Date
- javascript Date()
- JavaScript Date
- JavaScript Date
- JavaScript Date
- JavaScript Date
- JavaScript.Date
- JavaScript Date
- javaScript Date
- java Date 和 javascript Date
- javascript的Date问题
- javascript常用对象 --- Date
- JavaScript Date 对象参考
- MongoDB与Tokyo Tyrant性能比较(1):基础CRU操作
- 如何重置identity值
- c# 线程同步: 详解lock,monitor,同步事件和等待句柄以及mutex
- 企业应用架构模式读书笔记(一)
- 字符串匹配:用随机算法
- javascript date
- 对.lds连接脚本文件的分析
- 同一个表中一列相同,另一列不同的
- 客户端SOCKET 编程
- outb_p 与outb的区别
- 修改oracle processes参数过大导致oracle启动不了解决方法
- ONGL详解
- 两个文字的析取范式的可满足性表示
- memcached全面剖析–5. memcached的应用和兼容程序