In JavaScript, time processing is often needed. Recently want to slowly build their own code base, sorting out a few of the previously used JS processing time functions, sent to share with you, later in the use will continue to add and modify the code base.
Convert a string to a Date object
Sometimes it is necessary to convert a string to a Date object, but IE does not support new date ("2011-04-07") to instantiate date objects, FF support, so write an extension function to convert a string such as YYYY-MM-DD or dd/mm/yyyy into a Date object. The code is as follows: Lanxi County Quwan Home Photography
/* Function: Converts a string to a Date object parameter: A string in the form of YYYY-MM-DD or DD/MM/YYYY returns: Date Object note: The direct instantiation of a Date object, such as new date ("2011-04-06") is not supported in IE * * Date.prototype.convertDate = function (date) {var flag = True;var Datearray = Date.split ("-"); if (datearray.length! = 3) { Datearray = Date.split ("/"); if (datearray.length! = 3) {return null;} Flag = false;} var newdate = new Date (), if (flag) {//month starts from 0 newdate.setfullyear (datearray[0], datearray[1]-1, datearray[2]);} else {newdate.setfullyear (datearray[2], datearray[1]-1, datearray[0]);} Newdate.sethours (0, 0, 0); return newdate;};
Test:
<script type= "Text/javascript" > Document.writeln (New Date (). Convertdate ("7/12/2011"));</script>
Output: Wed Dec 17:30:58 gmt+0800
Calculates the difference between two dates
This function calculates the difference (milliseconds/second/minute/hour/day) before the two date, mainly using the gettime () function and the Math.floor () function, the code is as follows:
/* Function: Calculates the difference parameter between the two dates: date is a DateTime object flag:ms-milliseconds, S-second, M-Min, H-hour, D-Day, M-month, Y-year return: current date and date two milliseconds per second/minute/hour/day */ Date.prototype.dateDiff = function (date, flag) {var mscount;var diff = this.gettime ()-date.gettime (); switch (flag) {CAs E "MS": Mscount = 1;break;case "s": Mscount = 1000;break;case "M": Mscount = * 1000;break;case "h": Mscount = 60 * 60 * 100 0;break;case "D": Mscount = $ * * 1000;break;} return Math.floor (Diff/mscount);};
Test:
<script type= "Text/javascript" > var d1 = new Date (). Convertdate ("2011-04-08"); var d2 = new Date (). Convertdate ("2011-04-07"); Document.writeln (D1.datediff (D2, ' d '));</script>
Determine if a year is a leap years
/* Function: Determine if a year is a leap years return: Whether it is a leap month */date.prototype.isleapyear = function () {var year = this.getfullyear (); return (4 = = 0) &A mp;& (year%!! = 0 | | year% 400 = = 0);}
Test:
<script type= "Text/javascript" > Document.writeln (New Date (). Convertdate ("2000-04-08"). Isleapyear () + ""); Document.writeln (New Date (). Convertdate ("2011-04-08"). Isleapyear () + ""); </script>//Result://true//False
Formatted date
This function was searched from the Internet, slightly modified, it is similar to the Format function in. NET, passing in a formatted string such as "Yyyy-mm-dd", returning the formatted date.
/* Function: Format date parameter: formatstr-format string D: Displays the day as a number without leading zeros, such as 1DD: Displays the day as a number with leading zeros, such as 01ddd: Displays the day as an abbreviated form, such as SUNDDDD: Displays the day as the full name, such as Sundaym: Displays the month as a number without leading zeros, as shown in January as 1MM: Displays the month as a number with leading zeros, such as 01MMM: Displays the month as an abbreviated form, such as janmmmm: Displays the month as the full month name, such as januaryyy: Displays the year in two-digit format yyyy: Year in four-digit format h: Displays the hour as a number without leading zeros using a 12-hour system Note | | Usage hh: Displays the hour as a number h with leading zeros using a 12-hour system: Use a 24-hour system to display the hour as a number without leading zeros hh: Displays the hour as a number m with leading zeros using a 24-hour system: Displays the minute as a number with no leading zeros mm: Displays the minute as a number s with leading zeros: Displays the second as a number SS without leading zeros : Displays seconds as a leading zero number L: Displays milliseconds as a number without leading zeros ll: Displays milliseconds as a number with leading zeros TT: Display AM/PMTT: Show AM/PM return: formatted date */date.prototype.format = function ( FORMATSTR) {var date = this;/* function: Padding 0-character argument: value-the string to fill, length-total length returned: The populated string */var zeroize = function (value, length) {if (!length) {length = 2;} Value = new String (value), for (var i = 0, zeros = "; I < (length-value.length); i++) {zeros + = ' 0 ';} return zeros + value;}; return Formatstr.replace (/"[^"]* "|" [^ ']* ' |\b (?:d {1,4}| M{1,4}|yy (?: yy)? | ([HHMSTT]) \1?| [LLZ]) \b/g, function ($) {switch ($) {case ' d ': return Date.getdate (); case ' DD ': Return Zeroize (Date.getdate ()); case ' DDD ': RET urn [' Sun ', ' Mon ', ' Tue ', ' Wed ', ' Thr ', ' Fri ', ' Sat '][date.getday ()];case ' dddd ': return [' Sunday ', ' Monday ', ' Tuesday ', ' Wednesday ', ' Thursday ', ' Frida ' Y ', ' Saturday '][date.getday ()];case ' m ': return Date.getmonth () + 1;case ' MM ': Return Zeroize (Date.getmonth () + 1); case ' m MM ': return [' Jan ', ' Feb ', ' Mar ', ' Apr ', ' may ', ' June ', ' Jul ', '][date.getmonth ', ' Sep ', ' Oct ', ' Nov ', ' Dec ' ()];case ' MM MM ': return [' January ', ' February ', ' March ', ' April ', ' may ', ' June ', ' July ', ' August ', ' September ', ' October ', ' November ', ' December '][date.getmonth ()];case ' yy ': return new String (Date.getfullyear ()). substr (2); case ' yyyy ': return Date.getfullyear (); case ' H ': return date.gethours ()% 12 | | 12;case ' hh ': Return Zeroize (date.gethours ()% | |), case ' H ': Return date.gethours (), Case ' hh ': Return zeroize (date.g Ethours ()); case ' m ': Return Date.getminutes (), Case ' mm ': Return Zeroize (Date.getminutes ()), case ' s ': return Date.getseconds (); case ' SS ': Return Zeroize (Date.getseconds ()), Case ' l ': return Date.getmilliseconds (), Case ' ll ':Return Zeroize (Date.getmilliseconds ()); case ' TT ': Return date.gethours () < 12? ' Am ': ' PM '; case ' TT ': Return date.gethours () < 12? ' AM ': ' PM ';}});
Test:
<script type= "Text/javascript" > Document.writeln (New Date (). Format ("Yyyy-mm-dd hh:mm:ss"); </script>// Results://2011-04-08 10:13:37
Organize some JavaScript time processing extension functions