function DateAdd (interval,number,date)
{
/*
* Function: To achieve the DATEADD function of VBScript.
* Parameter: interval, a string expression representing the time interval to add.
* Parameter: number, numeric expression, representing the amount of time interval to add.
* Parameter: Date, Time object.
* Return: A new Time object.
* var now = new Date ();
* var newdate = DATEADD ("D", 5,now);
*---------------DateAdd (interval,number,date)-----------------
*/
Switch (interval)
{
Case "Y": {
Date.setfullyear (Date.getfullyear () +number);
return date;
Break
}
Case "Q": {
Date.setmonth (Date.getmonth () +number*3);
return date;
Break
}
Case "M": {
Date.setmonth (Date.getmonth () +number);
return date;
Break
}
Case "W": {
Date.setdate (Date.getdate () +number*7);
return date;
Break
}
Case "D": {
Date.setdate (Date.getdate () +number);
return date;
Break
}
Case "H": {
Date.sethours (Date.gethours () +number);
return date;
Break
}
Case "M": {
Date.setminutes (Date.getminutes () +number);
return date;
Break
}
Case "S": {
Date.setseconds (Date.getseconds () +number);
return date;
Break
}
Default: {
Date.setdate (D.getdate () +number);
return date;
Break
}
}
}
var now = new Date ();
Plus five days.
var newdate = DATEADD ("D", 5,now);
Alert (newdate.tolocaledatestring ())
Plus two months.
Newdate = DateAdd ("M", 2,now);
Alert (newdate.tolocaledatestring ())
Plus one year
Newdate = DATEADD ("y", 1,now);
Alert (newdate.tolocaledatestring ())
//---------------------------------------------------
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 '
In the database tutorial, 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;
}