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>

原创粉丝点击