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

📄 date.js

📁 ext-2.3.0
💻 JS
📖 第 1 页 / 共 4 页
字号:
/*
 * Ext JS Library 2.3.0
 * Copyright(c) 2006-2009, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://extjs.com/license
 */

/** * @class Date * * The date parsing and formatting syntax contains 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. * * The following is a 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 short textual representation of the day of the week                     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  N     ISO-8601 numeric representation of the day of the week                    1 (for Monday) through 7 (for Sunday)  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                    01 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                                 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.  o     ISO-8601 year number (identical to (Y), but if the ISO week number (W)    Examples: 1998 or 2004        belongs to the previous or next year, that year is used instead)  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     Decimal fraction of a second                                              Examples:        (minimum 1 digit, arbitrary number of digits allowed)                     001 (i.e. 0.001s) or                                                                                  100 (i.e. 0.100s) or                                                                                  999 (i.e. 0.999s) or                                                                                  999876543210 (i.e. 0.999876543210s)  O     Difference to Greenwich time (GMT) in hours and minutes                   Example: +1030  P     Difference to Greenwich time (GMT) with colon between hours and minutes   Example: -08:00  T     Timezone abbreviation of the machine running the code                     Examples: EST, MDT, PDT ...  Z     Timezone offset in seconds (negative if west of UTC, positive if east)    -43200 to 50400  c     ISO 8601 date        Notes:                                                                    Examples:        1) If unspecified, the month / day defaults to the current month / day,   1991 or           the time defaults to midnight, while the timezone defaults to the      1992-10 or           browser's timezone. If a time is specified, it must include both hours 1993-09-20 or           and minutes. The "T" delimiter, seconds, milliseconds and timezone     1994-08-19T16:20+01:00 or           are optional.                                                          1995-07-18T17:21:28-02:00 or        2) The decimal fraction of a second, if specified, must contain at        1996-06-17T18:22:29.98765+03:00 or           least 1 digit (there is no limit to the maximum number                 1997-05-16T19:23:30,12345-0400 or           of digits allowed), and may be delimited by either a '.' or a ','      1998-04-15T20:24:31.2468Z or        Refer to the examples on the right for the various levels of              1999-03-14T20:24:32Z or        date-time granularity which are supported, or see                         2000-02-13T21:25:33        http://www.w3.org/TR/NOTE-datetime for more info.                         2001-01-12 22:26:34  U     Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)                1193432466 or -2138434463  M$    Microsoft AJAX serialized dates                                           \/Date(1238606590509)\/ (i.e. UTC milliseconds since epoch) or                                                                                  \/Date(1238606590509+0800)\/</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 jS \\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> * <p>Developer-written, custom formats may be used by supplying both a formatting and a parsing function * which perform to specialized requirements. The functions are stored in {@link #parseFunctions} and {@link #formatFunctions}.</p> *//* * Most of the date-formatting functions below are the excellent work of Baron Schwartz. * (see http://www.xaprb.com/blog/2005/12/12/javascript-closures-for-runtime-efficiency/) * They generate precompiled functions from format patterns instead of parsing and * processing each pattern every time a date is formatted. These functions are available * on every Date object. */(function() {/** * Global flag which determines if strict date parsing should be used. * Strict date parsing will not roll-over invalid dates, which is the * default behaviour of javascript Date objects. * (see {@link #parseDate} for more information) * Defaults to <tt>false</tt>. * @static * @type Boolean*/Date.useStrict = false;// create private copy of Ext's String.format() method// - to remove unnecessary dependency// - to resolve namespace conflict with M$-Ajax's implementationfunction xf(format) {    var args = Array.prototype.slice.call(arguments, 1);    return format.replace(/\{(\d+)\}/g, function(m, i) {        return args[i];    });}// privateDate.formatCodeToRegex = function(character, currentGroup) {    // Note: currentGroup - position in regex result array (see notes for Date.parseCodes below)    var p = Date.parseCodes[character];    if (p) {      p = typeof p == 'function'? p() : p;      Date.parseCodes[character] = p; // reassign function result to prevent repeated execution    }    return p? Ext.applyIf({      c: p.c? xf(p.c, currentGroup || "{0}") : p.c    }, p) : {        g:0,        c:null,        s:Ext.escapeRe(character) // treat unrecognised characters as literals    }}// private shorthand for Date.formatCodeToRegex since we'll be using it fairly oftenvar $f = Date.formatCodeToRegex;Ext.apply(Date, {    /**     * <p>An object hash in which each property is a date parsing function. The property name is the     * format string which that function parses.</p>     * <p>This object is automatically populated with date parsing functions as     * date formats are requested for Ext standard formatting strings.</p>     * <p>Custom parsing functions may be inserted into this object, keyed by a name which from then on     * may be used as a format string to {@link #parseDate}.<p>     * <p>Example:</p><code><pre>Date.parseFunctions['x-date-format'] = myDateParser;</pre></code>     * <p>A parsing function should return a Date object, and is passed the following parameters:<div class="mdetail-params"><ul>     * <li><code>date</code> : String<div class="sub-desc">The date string to parse.</div></li>     * <li><code>strict</code> : Boolean<div class="sub-desc">True to validate date strings while parsing     * (i.e. prevent javascript Date "rollover") (The default must be false).     * Invalid date strings should return null when parsed.</div></li>     * </ul></div></p>     * <p>To enable Dates to also be <i>formatted</i> according to that format, a corresponding     * formatting function must be placed into the {@link #formatFunctions} property.     * @property parseFunctions     * @static     * @type Object     */    parseFunctions: {        "M$": function(input, strict) {            // note: the timezone offset is ignored since the M$ Ajax server sends            // a UTC milliseconds-since-Unix-epoch value (negative values are allowed)            var re = new RegExp('\\/Date\\(([-+])?(\\d+)(?:[+-]\\d{4})?\\)\\/');            var r = (input || '').match(re);            return r? new Date(((r[1] || '') + r[2]) * 1) : null;        }    },    parseRegexes: [],    /**     * <p>An object hash in which each property is a date formatting function. The property name is the     * format string which corresponds to the produced formatted date string.</p>     * <p>This object is automatically populated with date formatting functions as     * date formats are requested for Ext standard formatting strings.</p>     * <p>Custom formatting functions may be inserted into this object, keyed by a name which from then on     * may be used as a format string to {@link #format}. Example:</p><code><pre>Date.formatFunctions['x-date-format'] = myDateFormatter;</pre></code>     * <p>A formatting function should return a string repesentation of the passed Date object:<div class="mdetail-params"><ul>     * <li><code>date</code> : Date<div class="sub-desc">The Date to format.</div></li>     * </ul></div></p>     * <p>To enable date strings to also be <i>parsed</i> according to that format, a corresponding     * parsing function must be placed into the {@link #parseFunctions} property.     * @property formatFunctions     * @static     * @type Object     */    formatFunctions: {        "M$": function() {            // UTC milliseconds since Unix epoch (M$-AJAX serialized date format (MRSF))            return '\\/Date(' + this.getTime() + ')\\/';        }    },    y2kYear : 50,    /**     * Date interval constant     * @static     * @type String     */    MILLI : "ms",    /**     * Date interval constant     * @static     * @type String     */    SECOND : "s",    /**     * Date interval constant     * @static     * @type String     */    MINUTE : "mi",    /** Date interval constant     * @static     * @type String     */    HOUR : "h",    /**     * Date interval constant     * @static     * @type String     */    DAY : "d",    /**     * Date interval constant     * @static     * @type String     */    MONTH : "mo",    /**     * Date interval constant     * @static     * @type String     */    YEAR : "y",    /**     * <p>An object hash containing default date values used during date parsing.</p>     * <p>The following properties are available:<div class="mdetail-params"><ul>     * <li><code>y</code> : Number<div class="sub-desc">The default year value. (defaults to undefined)</div></li>     * <li><code>m</code> : Number<div class="sub-desc">The default 1-based month value. (defaults to undefined)</div></li>     * <li><code>d</code> : Number<div class="sub-desc">The default day value. (defaults to undefined)</div></li>     * <li><code>h</code> : Number<div class="sub-desc">The default hour value. (defaults to undefined)</div></li>     * <li><code>i</code> : Number<div class="sub-desc">The default minute value. (defaults to undefined)</div></li>     * <li><code>s</code> : Number<div class="sub-desc">The default second value. (defaults to undefined)</div></li>     * <li><code>ms</code> : Number<div class="sub-desc">The default millisecond value. (defaults to undefined)</div></li>     * </ul></div></p>     * <p>Override these properties to customize the default date values used by the {@link #parseDate} method.</p>     * <p><b>Note: In countries which experience Daylight Saving Time (i.e. DST), the <tt>h</tt>, <tt>i</tt>, <tt>s</tt>     * and <tt>ms</tt> properties may coincide with the exact time in which DST takes effect.     * It is the responsiblity of the developer to account for this.</b></p>     * Example Usage:     * <pre><code>// set default day value to the first day of the monthDate.defaults.d = 1;// parse a February date string containing only year and month values.// setting the default day value to 1 prevents weird date rollover issues// when attempting to parse the following date string on, for example, March 31st 2009.Date.parseDate('2009-02', 'Y-m'); // returns a Date object representing February 1st 2009</code></pre>     * @property defaults     * @static     * @type Object     */    defaults: {},    /**     * An array of textual day names.     * Override these values for international dates.     * Example:     * <pre><code>Date.dayNames = [    'SundayInYourLang',    'MondayInYourLang',    ...];</code></pre>     * @type Array     * @static     */    dayNames : [        "Sunday",        "Monday",        "Tuesday",        "Wednesday",        "Thursday",        "Friday",        "Saturday"    ],

⌨️ 快捷键说明

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