⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 date.js

📁 数据库系统教材中附录的课程设计accomodation宿舍管理系统源码
💻 JS
📖 第 1 页 / 共 2 页
字号:
/*
 * Ext JS Library 2.0 Beta 1
 * Copyright(c) 2006-2007, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://extjs.com/license
 */

/** * @class Date * * The date parsing and format syntax is a subset of * <a href="http://www.php.net/date">PHP's date() function</a>, and the formats that are * supported will provide results equivalent to their PHP versions. * * Following is the list of all currently supported formats: *<pre>Format  Description                                                             Example returned values------  ----------------------------------------------------------------------  -----------------------  d     Day of the month, 2 digits with leading zeros                           01 to 31  D     A textual representation of a day, three letters                        Mon to Sun  j     Day of the month without leading zeros                                  1 to 31  l     A full textual representation of the day of the week                    Sunday to Saturday  S     English ordinal suffix for the day of the month, 2 characters           st, nd, rd or th. Works well with j  w     Numeric representation of the day of the week                           0 (for Sunday) to 6 (for Saturday)  z     The day of the year (starting from 0)                                   0 to 364 (365 in leap years)  W     ISO-8601 week number of year, weeks starting on Monday                  1 to 53  F     A full textual representation of a month, such as January or March      January to December  m     Numeric representation of a month, with leading zeros                   01 to 12  M     A short textual representation of a month, three letters                Jan to Dec  n     Numeric representation of a month, without leading zeros                1 to 12  t     Number of days in the given month                                       28 to 31  L     Whether it's a leap year                                                1 if it is a leap year, 0 otherwise.  Y     A full numeric representation of a year, 4 digits                       Examples: 1999 or 2003  y     A two digit representation of a year                                    Examples: 99 or 03  a     Lowercase Ante meridiem and Post meridiem                               am or pm  A     Uppercase Ante meridiem and Post meridiem                               AM or PM  g     12-hour format of an hour without leading zeros                         1 to 12  G     24-hour format of an hour without leading zeros                         0 to 23  h     12-hour format of an hour with leading zeros                            01 to 12  H     24-hour format of an hour with leading zeros                            00 to 23  i     Minutes, with leading zeros                                             00 to 59  s     Seconds, with leading zeros                                             00 to 59  u     Milliseconds, with leading zeros                                        001 to 999  O     Difference to Greenwich time (GMT) in hours                             Example: +0200  T     Timezone abbreviation of the machine running the code                   Examples: EST, MDT ...  Z     Timezone offset in seconds (negative if west of UTC, positive if east)  -43200 to 50400</pre> * * Example usage (note that you must escape format specifiers with '\\' to render them as character literals): * <pre><code>// Sample date:// 'Wed Jan 10 2007 15:05:01 GMT-0600 (Central Standard Time)'var dt = new Date('1/10/2007 03:05:01 PM GMT-0600');document.write(dt.format('Y-m-d'));                         //2007-01-10document.write(dt.format('F j, Y, g:i a'));                 //January 10, 2007, 3:05 pmdocument.write(dt.format('l, \\t\\he dS of F Y h:i:s A'));  //Wednesday, the 10th of January 2007 03:05:01 PM </code></pre> * * Here are some standard date/time patterns that you might find helpful.  They * are not part of the source of Date.js, but to use them you can simply copy this * block of code into any script that is included after Date.js and they will also become * globally available on the Date object.  Feel free to add or remove patterns as needed in your code. * <pre><code>Date.patterns = {    ISO8601Long:"Y-m-d H:i:s",    ISO8601Short:"Y-m-d",    ShortDate: "n/j/Y",    LongDate: "l, F d, Y",    FullDateTime: "l, F d, Y g:i:s A",    MonthDay: "F d",    ShortTime: "g:i A",    LongTime: "g:i:s A",    SortableDateTime: "Y-m-d\\TH:i:s",    UniversalSortableDateTime: "Y-m-d H:i:sO",    YearMonth: "F, Y"};</code></pre> * * Example usage: * <pre><code>var dt = new Date();document.write(dt.format(Date.patterns.ShortDate)); </code></pre> *//* * Most of the date-formatting functions below are the excellent work of Baron Schwartz. * They generate precompiled functions from date formats instead of parsing and * processing the pattern every time you format a date.  These functions are available * on every Date object (any javascript function). * * The original article and download are here: * http://www.xaprb.com/blog/2005/12/12/javascript-closures-for-runtime-efficiency/ * */// privateDate.parseFunctions = {count:0};// privateDate.parseRegexes = [];// privateDate.formatFunctions = {count:0};// privateDate.prototype.dateFormat = function(format) {    if (Date.formatFunctions[format] == null) {        Date.createNewFormat(format);    }    var func = Date.formatFunctions[format];    return this[func]();};/** * Formats a date given the supplied format string * @param {String} format The format string * @return {String} The formatted date * @method */Date.prototype.format = Date.prototype.dateFormat;// privateDate.createNewFormat = function(format) {    var funcName = "format" + Date.formatFunctions.count++;    Date.formatFunctions[format] = funcName;    var code = "Date.prototype." + funcName + " = function(){return ";    var special = false;    var ch = '';    for (var i = 0; i < format.length; ++i) {        ch = format.charAt(i);        if (!special && ch == "\\") {            special = true;        }        else if (special) {            special = false;            code += "'" + String.escape(ch) + "' + ";        }        else {            code += Date.getFormatCode(ch);        }    }    eval(code.substring(0, code.length - 3) + ";}");};// privateDate.getFormatCode = function(character) {    switch (character) {    case "d":        return "String.leftPad(this.getDate(), 2, '0') + ";    case "D":        return "Date.dayNames[this.getDay()].substring(0, 3) + ";    case "j":        return "this.getDate() + ";    case "l":        return "Date.dayNames[this.getDay()] + ";    case "S":        return "this.getSuffix() + ";    case "w":        return "this.getDay() + ";    case "z":        return "this.getDayOfYear() + ";    case "W":        return "this.getWeekOfYear() + ";    case "F":        return "Date.monthNames[this.getMonth()] + ";    case "m":        return "String.leftPad(this.getMonth() + 1, 2, '0') + ";    case "M":        return "Date.monthNames[this.getMonth()].substring(0, 3) + ";    case "n":        return "(this.getMonth() + 1) + ";    case "t":        return "this.getDaysInMonth() + ";    case "L":        return "(this.isLeapYear() ? 1 : 0) + ";    case "Y":        return "this.getFullYear() + ";    case "y":        return "('' + this.getFullYear()).substring(2, 4) + ";    case "a":        return "(this.getHours() < 12 ? 'am' : 'pm') + ";    case "A":        return "(this.getHours() < 12 ? 'AM' : 'PM') + ";    case "g":        return "((this.getHours() % 12) ? this.getHours() % 12 : 12) + ";    case "G":        return "this.getHours() + ";    case "h":        return "String.leftPad((this.getHours() % 12) ? this.getHours() % 12 : 12, 2, '0') + ";    case "H":        return "String.leftPad(this.getHours(), 2, '0') + ";    case "i":        return "String.leftPad(this.getMinutes(), 2, '0') + ";    case "s":        return "String.leftPad(this.getSeconds(), 2, '0') + ";    case "u":        return "String.leftPad(this.getMilliseconds(), 3, '0') + ";    case "O":        return "this.getGMTOffset() + ";    case "T":        return "this.getTimezone() + ";    case "Z":        return "(this.getTimezoneOffset() * -60) + ";    default:        return "'" + String.escape(character) + "' + ";    }};/** * Parses the passed string using the specified format. Note that this function expects dates in normal calendar * format, meaning that months are 1-based (1 = January) and not zero-based like in JavaScript dates.  Any part of * the date format that is not specified will default to the current date value for that part.  Time parts can also * be specified, but default to 0.  Keep in mind that the input date string must precisely match the specified format * string or the parse operation will fail. * Example Usage:<pre><code>//dt = Fri May 25 2007 (current date)var dt = new Date();//dt = Thu May 25 2006 (today's month/day in 2006)dt = Date.parseDate("2006", "Y");//dt = Sun Jan 15 2006 (all date parts specified)dt = Date.parseDate("2006-01-15", "Y-m-d");//dt = Sun Jan 15 2006 15:20:01 GMT-0600 (CST)dt = Date.parseDate("2006-01-15 3:20:01 PM", "Y-m-d h:i:s A" );</code></pre> * @param {String} input The unparsed date as a string * @param {String} format The format the date is in * @return {Date} The parsed date * @static */Date.parseDate = function(input, format) {    if (Date.parseFunctions[format] == null) {        Date.createParser(format);    }    var func = Date.parseFunctions[format];    return Date[func](input);};// privateDate.createParser = function(format) {    var funcName = "parse" + Date.parseFunctions.count++;    var regexNum = Date.parseRegexes.length;    var currentGroup = 1;    Date.parseFunctions[format] = funcName;    var code = "Date." + funcName + " = function(input){\n"        + "var y = -1, m = -1, d = -1, h = -1, i = -1, s = -1, ms = -1, o, z, v;\n"        + "var d = new Date();\n"        + "y = d.getFullYear();\n"        + "m = d.getMonth();\n"        + "d = d.getDate();\n"        + "var results = input.match(Date.parseRegexes[" + regexNum + "]);\n"        + "if (results && results.length > 0) {";    var regex = "";    var special = false;    var ch = '';    for (var i = 0; i < format.length; ++i) {        ch = format.charAt(i);        if (!special && ch == "\\") {            special = true;        }        else if (special) {            special = false;            regex += String.escape(ch);        }        else {            var obj = Date.formatCodeToRegex(ch, currentGroup);            currentGroup += obj.g;            regex += obj.s;            if (obj.g && obj.c) {                code += obj.c;            }        }    }    code += "if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0 && ms >= 0)\n"        + "{v = new Date(y, m, d, h, i, s, ms);}\n"        + "else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0)\n"        + "{v = new Date(y, m, d, h, i, s);}\n"        + "else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n"        + "{v = new Date(y, m, d, h, i);}\n"        + "else if (y >= 0 && m >= 0 && d > 0 && h >= 0)\n"        + "{v = new Date(y, m, d, h);}\n"        + "else if (y >= 0 && m >= 0 && d > 0)\n"        + "{v = new Date(y, m, d);}\n"        + "else if (y >= 0 && m >= 0)\n"        + "{v = new Date(y, m);}\n"        + "else if (y >= 0)\n"        + "{v = new Date(y);}\n"        + "}return (v && (z || o))?\n" // favour UTC offset over GMT offset        + "    ((z)? v.add(Date.SECOND, (v.getTimezoneOffset() * 60) + (z*1)) :\n" // reset to UTC, then add offset        + "        v.add(Date.HOUR, (v.getGMTOffset() / 100) + (o / -100))) : v\n" // reset to GMT, then add offset        + ";}";    Date.parseRegexes[regexNum] = new RegExp("^" + regex + "$", "i");    eval(code);};// privateDate.formatCodeToRegex = function(character, currentGroup) {    /*     * currentGroup = position in regex result array     * g = calculation group (0 or 1. only group 1 contributes to date calculations.)     * c = calculation method (required for group 1. null for group 0.)     * s = regex string     */    switch (character) {    case "D":        return {g:0,        c:null,        s:"(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)"};    case "j":        return {g:1,            c:"d = parseInt(results[" + currentGroup + "], 10);\n",            s:"(\\d{1,2})"}; // day of month without leading zeroes    case "d":        return {g:1,            c:"d = parseInt(results[" + currentGroup + "], 10);\n",            s:"(\\d{2})"}; // day of month with leading zeroes    case "l":        return {g:0,            c:null,            s:"(?:" + Date.dayNames.join("|") + ")"};    case "S":        return {g:0,            c:null,            s:"(?:st|nd|rd|th)"};    case "w":        return {g:0,            c:null,            s:"\\d"};    case "z":        return {g:0,            c:null,            s:"(?:\\d{1,3})"};    case "W":        return {g:0,            c:null,            s:"(?:\\d{1,2})"};    case "F":        return {g:1,            c:"m = parseInt(Date.monthNumbers[results[" + currentGroup + "].substring(0, 1).toUpperCase() + results[" + currentGroup + "].substring(1, 3).toLowerCase()], 10);\n",            s:"(" + Date.monthNames.join("|") + ")"};    case "M":        return {g:1,            c:"m = parseInt(Date.monthNumbers[results[" + currentGroup + "].substring(0, 1).toUpperCase() + results[" + currentGroup + "].substring(1, 3).toLowerCase()], 10);\n",            s:"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)"};    case "n":        return {g:1,            c:"m = parseInt(results[" + currentGroup + "], 10) - 1;\n",            s:"(\\d{1,2})"}; // Numeric representation of a month, without leading zeros    case "m":        return {g:1,            c:"m = parseInt(results[" + currentGroup + "], 10) - 1;\n",            s:"(\\d{2})"}; // Numeric representation of a month, with leading zeros    case "t":        return {g:0,            c:null,            s:"\\d{1,2}"};    case "L":        return {g:0,            c:null,            s:"(?:1|0)"};    case "Y":        return {g:1,            c:"y = parseInt(results[" + currentGroup + "], 10);\n",            s:"(\\d{4})"};    case "y":        return {g:1,            c:"var ty = parseInt(results[" + currentGroup + "], 10);\n"                + "y = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",            s:"(\\d{1,2})"};    case "a":        return {g:1,            c:"if (results[" + currentGroup + "] == 'am') {\n"                + "if (h == 12) { h = 0; }\n"                + "} else { if (h < 12) { h += 12; }}",            s:"(am|pm)"};    case "A":        return {g:1,            c:"if (results[" + currentGroup + "] == 'AM') {\n"                + "if (h == 12) { h = 0; }\n"                + "} else { if (h < 12) { h += 12; }}",            s:"(AM|PM)"};    case "g":    case "G":        return {g:1,            c:"h = parseInt(results[" + currentGroup + "], 10);\n",

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -