//--------------------------------------------------- Judging leap years //--------------------------------------------------- Date.prototype.isLeapYear = function () { Return (0==this.getyear ()%4&& (This.getyear ()%100!=0) | | (This.getyear ()%400==0)); }
//--------------------------------------------------- Date formatting Format Yyyy/yyyy/yy/yy represents year Mm/m Month W/W Week dd/dd/d/d Date hh/hh/h/h time mm/m minutes SS/SS/S/S seconds //--------------------------------------------------- Date.prototype.Format = function (FORMATSTR) { var str = FORMATSTR; var Week = [' Day ', ' one ', ' two ', ' three ', ' four ', ' five ', ' six '];
Str=str.replace (/yyyy| Yyyy/,this.getfullyear ()); Str=str.replace (/yy| yy/, (this.getyear ()%) >9? (This.getyear ()%). 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; }
//+--------------------------------------------------- //| The number of days for two time difference date format is 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 Calculation //+--------------------------------------------------- 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 ()); } }
//+--------------------------------------------------- //| Compare Date Difference dtend format is a date type or a valid date format string //+--------------------------------------------------- Date.prototype.DateDiff = function (Strinterval, dtend) { var dtstart = this; if (typeof dtend = = ' string ')//if the string is converted to a date type { 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 (); } }
//+--------------------------------------------------- //| Date output string that overloads the system's ToString method //+--------------------------------------------------- Date.prototype.toString = function (Showweek) { var mydate= this; var str = mydate.tolocaledatestring (); if (Showweek) { var Week = [' Day ', ' one ', ' two ', ' three ', ' four ', ' five ', ' six ']; STR + + ' Week ' + week[mydate.getday ()]; } return str; }
//+--------------------------------------------------- //| Validation of date legality //| Format is: YYYY-MM-DD or YYYY/MM/DD //+--------------------------------------------------- function Isvaliddate (DATESTR) { var sdate=datestr.replace (/(^s+|s+$)/g, ""); Go to both sides of the space; if (sdate== ') return true; If the format satisfies the yyyy-(/) mm-(/) DD or yyyy-(/) m (/) DD or yyyy-(/) m (/) d or yyyy-(/) mm-(/) d, replace with ' database, the legal date can be: Yyyy-mm/dd (2003-3/21), and the database is automatically converted to YYYY-MM-DD format var s = sdate.replace (/[d]{4,4}[-/]{1}[d]{1,2}[-/]{1}[d]{1,2}/g, "); if (s== ')//description format meets YYYY-MM-DD or YYYY-M-DD or yyyy-m-d or 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 (' Wrong date format! The format is: Yyyy-mm-dd or YYYY/MM/DD. Notice leap year. '); return false; } } Else { Alert (' Wrong date format! The format is: Yyyy-mm-dd or YYYY/MM/DD. Notice leap year. '); return false; } return true; }
//+--------------------------------------------------- //| Date Time Check //| Format is: 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; }
//+--------------------------------------------------- //| Split dates into groups //+--------------------------------------------------- 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; } //+--------------------------------------------------- //| Get Date data information //| Parameter interval representing data types //| Y year M month D Day W week WW Week h when N minutes s sec //+--------------------------------------------------- Date.prototype.DatePart = function (interval) { var mydate = this; var partstr= '; var Week = [' Day ', ' one ', ' two ', ' three ', ' four ', ' five ', ' six ']; Switch (interval) { Case ' y ':p artstr = Mydate.getfullyear (); Case ' m ':p artstr = Mydate.getmonth () +1;break; Case ' d ':p artstr = Mydate.getdate (); Case ' W ':p artstr = Week[mydate.getday ()];break; Case ' ww ':p artstr = Mydate.weeknumofyear (); Case ' h ':p artstr = mydate.gethours (); Case ' n ':p artstr = Mydate.getminutes (); Case ' s ':p artstr = Mydate.getseconds (); } return partstr; }
//+--------------------------------------------------- //| Gets the maximum number of days of the month where the current date is //+--------------------------------------------------- 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; }
//+--------------------------------------------------- //| To get the current date the week is the week ordinal of the year //+--------------------------------------------------- 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; }
//+--------------------------------------------------- //| string is converted to date type //| Format 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; } |