Home > Web Front-end > JS Tutorial > javascript date and time function (classic + perfect + practical)_time and date

javascript date and time function (classic + perfect + practical)_time and date

WBOY
Release: 2016-05-16 18:52:28
Original
900 people have browsed it

Date.prototype.isLeapYear Determine leap year
Date.prototype.Format Date formatting
Date.prototype.DateAdd Date calculation
Date.prototype.DateDiff Compare date difference
Date.prototype.toString Date to character String
Date.prototype.toArray Split the date into an array
Date.prototype.DatePart Get part of the date information
Date.prototype.MaxDayOfDate Get the maximum number of days in the month where the date is located
Date.prototype.WeekNumOfYear Judgment The week of the year where the date is located
StringToDate String to date type
IsValidDate Verify date validity
CheckDateTime Complete date and time check
daysBetween Date and day difference

Copy code The code is as follows:

//------------------------------------------------ ----------
// Determining leap years
//-------------------------------- -----------------------
Date.prototype.isLeapYear = function()
{
return (0==this.getYear( )%4&&((this.getYear() 0!=0)||(this.getYear()@0==0)));
}
//-------- ---------------------------------------------
//Date format
//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 = ['日','一','二','三','四','五','六'];
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;
}
// ----- -----------------------------------------------
/ /| Find the difference in days between two times. The 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 date type or Valid date format string
// ---------------------------------------- -----------
Date.prototype.DateDiff = function(strInterval, dtEnd) {
var dtStart = this;
if (typeof dtEnd == 'string' )// If the string is converted to 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, overloaded the system's toString method
// -------------------------- -------------------------------
Date.prototype.toString = function(showWeek)
{
var myDate= this;
var str = myDate.toLocaleDateString();
if (showWeek)
{
var Week = ['日','一','二','三' ,'four','five','six'];
str = 'week' Week[myDate.getDay()];
}
return str;
}
// -------------------------------------------------- -
//| Date legality verification
//| The format is: YYYY-MM-DD or YYYY/MM/DD
// -------------- -------------------------------------
function IsValidDate(DateStr)
{
var sDate=DateStr.replace(/(^s |s $)/g,''); //remove spaces on both sides;
if(sDate=='') return true;
//if The format satisfies YYYY-(/)MM-(/)DD or YYYY-(/)M-(/)DD or YYYY-(/)M-(/)D or YYYY-(/)MM-(/)D Replace with ''
//In the database, the legal date can be: YYYY-MM/DD (2003-3/21), the database will automatically convert to YYYY-MM-DD format
var s = sDate.replace (/[d]{ 4,4 }[-/]{ 1 }[d]{ 1,2 }[-/]{ 1 }[d]{ 1,2 }/g,'');
if (s=='') //The description format satisfies 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. Pay attention to leap years. ');
return false;
}
}
else
{
//alert('Wrong date format! The format is: YYYY-MM-DD or YYYY/MM /DD. Note leap years.');
return false;
}
return true;
}
// ----------------------- -----------------------------
//| Date and time check
//| The 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 the date into arrays
// ---------------------------------- ------------------
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
//| The parameter interval represents the data type
//| y year m month d day w week ww week h hour n minute s second
// - --------------------------------------------------
Date.prototype.DatePart = function(interval)
{
var myDate = this;
var partStr='';
var Week = ['日','一',' two','three','four','five','six'];
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;
}
// -- --------------------------------------------------
//| Get the maximum number of days in the month of the current date
//-------------------------------- -------------------
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;
}
// - --------------------------------------------------
//| Get the week of the year that the current date is in
// -------------------------- --------------------------
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;
}
// ------- -----------------------------------------------
//| Convert string 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;
}

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template