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

📄 date.js

📁 数据库系统教材中附录的课程设计accomodation宿舍管理系统源码
💻 JS
📖 第 1 页 / 共 2 页
字号:
            s:"(\\d{1,2})"}; // 12/24-hr format  format of an hour without leading zeroes    case "h":    case "H":        return {g:1,            c:"h = parseInt(results[" + currentGroup + "], 10);\n",            s:"(\\d{2})"}; //  12/24-hr format  format of an hour with leading zeroes    case "i":        return {g:1,            c:"i = parseInt(results[" + currentGroup + "], 10);\n",            s:"(\\d{2})"};    case "s":        return {g:1,            c:"s = parseInt(results[" + currentGroup + "], 10);\n",            s:"(\\d{2})"};    case "u":        return {g:1,            c:"ms = parseInt(results[" + currentGroup + "], 10);\n",            s:"(\\d{3})"};    case "O":        return {g:1,            c:[                "o = results[", currentGroup, "];\n",                "var sn = o.substring(0,1);\n", // get + / - sign                "var hr = o.substring(1,3)*1 + Math.floor(o.substring(3,5) / 60);\n", // get hours (performs minutes-to-hour conversion also)                "var mn = o.substring(3,5) % 60;\n", // get minutes                "o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))?\n", // -12hrs <= GMT offset <= 14hrs                "    (sn + String.leftPad(hr, 2, 0) + String.leftPad(mn, 2, 0)) : null;\n"            ].join(""),            s:"([+\-]\\d{4})"};    case "T":        return {g:0,            c:null,            s:"[A-Z]{1,4}"}; // timezone abbrev. may be between 1 - 4 chars    case "Z":        return {g:1,            c:"z = results[" + currentGroup + "] * 1;\n" // -43200 <= UTC offset <= 50400                  + "z = (-43200 <= z && z <= 50400)? z : null;\n",            s:"([+\-]?\\d{1,5})"}; // leading '+' sign is optional for UTC offset    default:        return {g:0,            c:null,            s:String.escape(character)};    }};/** * Get the timezone abbreviation of the current date (equivalent to the format specifier 'T'). * @return {String} The abbreviated timezone name (e.g. 'CST') */Date.prototype.getTimezone = function() {    return this.toString().replace(/^.*? ([A-Z]{1,4})[\-+][0-9]{4} .*$/, "$1");};/** * Get the offset from GMT of the current date (equivalent to the format specifier 'O'). * @return {String} The 4-character offset string prefixed with + or - (e.g. '-0600') */Date.prototype.getGMTOffset = function() {    return (this.getTimezoneOffset() > 0 ? "-" : "+")        + String.leftPad(Math.abs(Math.floor(this.getTimezoneOffset() / 60)), 2, "0")        + String.leftPad(this.getTimezoneOffset() % 60, 2, "0");};/** * Get the numeric day number of the year, adjusted for leap year. * @return {Number} 0 to 364 (365 in leap years) */Date.prototype.getDayOfYear = function() {    var num = 0;    Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28;    for (var i = 0; i < this.getMonth(); ++i) {        num += Date.daysInMonth[i];    }    return num + this.getDate() - 1;};/** * Get the numeric ISO-8601 week number of the year * (equivalent to the format specifier 'W'). * @return {Number} 1 to 53 */Date.prototype.getWeekOfYear = function() {  /*    original getWeek() function developed by Nick Baicoianu    at MeanFreePath: http://www.meanfreepath.com  */  var jan1 = new Date(this.getFullYear(), 0, 1);  var day = jan1.getDay() - 1; // the day of week the year begins on  day = (day >= 0 ? day : day + 7);  var daynum = Math.floor((this.getTime() - jan1.getTime() - (this.getTimezoneOffset()-jan1.getTimezoneOffset())*60000)/86400000) + 1;  var weeknum;  // if the year starts before the middle of a week  if (day < 4) {    weeknum = Math.floor((daynum + day - 1) / 7) + 1;    if (weeknum > 52) {      jan1 = new Date(this.getFullYear() + 1, 0, 1);      day = jan1.getDay() - 1;      day = (day >= 0 ? day : day + 7);      // if the next year starts before the middle of the week, it is week #1 of that year      weeknum = day < 4 ? 1 : 53;    }  } else {    weeknum = Math.floor((daynum + day - 1) / 7) || 52;  }  return weeknum;};/** * Whether or not the current date is in a leap year. * @return {Boolean} True if the current date is in a leap year, else false */Date.prototype.isLeapYear = function() {    var year = this.getFullYear();    return ((year & 3) == 0 && (year % 100 || (year % 400 == 0 && year)));};/** * Get the first day of the current month, adjusted for leap year.  The returned value * is the numeric day index within the week (0-6) which can be used in conjunction with * the {@link #monthNames} array to retrieve the textual day name. * Example: *<pre><code>var dt = new Date('1/10/2007');document.write(Date.dayNames[dt.getFirstDayOfMonth()]); //output: 'Monday'</code></pre> * @return {Number} The day number (0-6) */Date.prototype.getFirstDayOfMonth = function() {    var day = (this.getDay() - (this.getDate() - 1)) % 7;    return (day < 0) ? (day + 7) : day;};/** * Get the last day of the current month, adjusted for leap year.  The returned value * is the numeric day index within the week (0-6) which can be used in conjunction with * the {@link #monthNames} array to retrieve the textual day name. * Example: *<pre><code>var dt = new Date('1/10/2007');document.write(Date.dayNames[dt.getLastDayOfMonth()]); //output: 'Wednesday'</code></pre> * @return {Number} The day number (0-6) */Date.prototype.getLastDayOfMonth = function() {    var day = (this.getDay() + (Date.daysInMonth[this.getMonth()] - this.getDate())) % 7;    return (day < 0) ? (day + 7) : day;};/** * Get the date of the first day of the month in which this date resides * @return {Date} */Date.prototype.getFirstDateOfMonth = function() {    return new Date(this.getFullYear(), this.getMonth(), 1);};/** * Get the date of the last day of the month in which this date resides * @return {Date} */Date.prototype.getLastDateOfMonth = function() {    return new Date(this.getFullYear(), this.getMonth(), this.getDaysInMonth());};/** * Get the number of days in the current month, adjusted for leap year. * @return {Number} The number of days in the month */Date.prototype.getDaysInMonth = function() {    Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28;    return Date.daysInMonth[this.getMonth()];};/** * Get the English ordinal suffix of the current day (equivalent to the format specifier 'S'). * @return {String} 'st, 'nd', 'rd' or 'th' */Date.prototype.getSuffix = function() {    switch (this.getDate()) {        case 1:        case 21:        case 31:            return "st";        case 2:        case 22:            return "nd";        case 3:        case 23:            return "rd";        default:            return "th";    }};// privateDate.daysInMonth = [31,28,31,30,31,30,31,31,30,31,30,31];/** * An array of textual month names. * Override these values for international dates, for example... * Date.monthNames = ['JanInYourLang', 'FebInYourLang', ...]; * @type Array * @static */Date.monthNames =   ["January",    "February",    "March",    "April",    "May",    "June",    "July",    "August",    "September",    "October",    "November",    "December"];/** * An array of textual day names. * Override these values for international dates, for example... * Date.dayNames = ['SundayInYourLang', 'MondayInYourLang', ...]; * @type Array * @static */Date.dayNames =   ["Sunday",    "Monday",    "Tuesday",    "Wednesday",    "Thursday",    "Friday",    "Saturday"];// privateDate.y2kYear = 50;// privateDate.monthNumbers = {    Jan:0,    Feb:1,    Mar:2,    Apr:3,    May:4,    Jun:5,    Jul:6,    Aug:7,    Sep:8,    Oct:9,    Nov:10,    Dec:11};/** * Creates and returns a new Date instance with the exact same date value as the called instance. * Dates are copied and passed by reference, so if a copied date variable is modified later, the original * variable will also be changed.  When the intention is to create a new variable that will not * modify the original instance, you should create a clone. * * Example of correctly cloning a date: * <pre><code>//wrong way:var orig = new Date('10/1/2006');var copy = orig;copy.setDate(5);document.write(orig);  //returns 'Thu Oct 05 2006'!//correct way:var orig = new Date('10/1/2006');var copy = orig.clone();copy.setDate(5);document.write(orig);  //returns 'Thu Oct 01 2006'</code></pre> * @return {Date} The new Date instance */Date.prototype.clone = function() {  return new Date(this.getTime());};/** * Clears any time information from this date @param {Boolean} clone true to create a clone of this date, clear the time and return it @return {Date} this or the clone */Date.prototype.clearTime = function(clone){    if(clone){        return this.clone().clearTime();    }    this.setHours(0);    this.setMinutes(0);    this.setSeconds(0);    this.setMilliseconds(0);    return this;};// private// safari setMonth is brokenif(Ext.isSafari){    Date.brokenSetMonth = Date.prototype.setMonth;  Date.prototype.setMonth = function(num){    if(num <= -1){      var n = Math.ceil(-num);      var back_year = Math.ceil(n/12);      var month = (n % 12) ? 12 - n % 12 : 0 ;      this.setFullYear(this.getFullYear() - back_year);      return Date.brokenSetMonth.call(this, month);    } else {      return Date.brokenSetMonth.apply(this, arguments);    }  };}/** Date interval constant @static @type String */Date.MILLI = "ms";/** Date interval constant @static @type String */Date.SECOND = "s";/** Date interval constant @static @type String */Date.MINUTE = "mi";/** Date interval constant @static @type String */Date.HOUR = "h";/** Date interval constant @static @type String */Date.DAY = "d";/** Date interval constant @static @type String */Date.MONTH = "mo";/** Date interval constant @static @type String */Date.YEAR = "y";/** * Provides a convenient method of performing basic date arithmetic.  This method * does not modify the Date instance being called - it creates and returns * a new Date instance containing the resulting date value. * * Examples: * <pre><code>//Basic usage:var dt = new Date('10/29/2006').add(Date.DAY, 5);document.write(dt); //returns 'Fri Oct 06 2006 00:00:00'//Negative values will subtract correctly:var dt2 = new Date('10/1/2006').add(Date.DAY, -5);document.write(dt2); //returns 'Tue Sep 26 2006 00:00:00'//You can even chain several calls together in one line!var dt3 = new Date('10/1/2006').add(Date.DAY, 5).add(Date.HOUR, 8).add(Date.MINUTE, -30);document.write(dt3); //returns 'Fri Oct 06 2006 07:30:00' </code></pre> * * @param {String} interval   A valid date interval enum value * @param {Number} value      The amount to add to the current date * @return {Date} The new Date instance */Date.prototype.add = function(interval, value){  var d = this.clone();  if (!interval || value === 0) return d;  switch(interval.toLowerCase()){    case Date.MILLI:      d.setMilliseconds(this.getMilliseconds() + value);      break;    case Date.SECOND:      d.setSeconds(this.getSeconds() + value);      break;    case Date.MINUTE:      d.setMinutes(this.getMinutes() + value);      break;    case Date.HOUR:      d.setHours(this.getHours() + value);      break;    case Date.DAY:      d.setDate(this.getDate() + value);      break;    case Date.MONTH:      var day = this.getDate();      if(day > 28){          day = Math.min(day, this.getFirstDateOfMonth().add('mo', value).getLastDateOfMonth().getDate());      }      d.setDate(day);      d.setMonth(this.getMonth() + value);      break;    case Date.YEAR:      d.setFullYear(this.getFullYear() + value);      break;  }  return d;};/** * Checks if this date falls on or between the given start and end dates * @param {Date} start Start date * @param {Date} end End date * @return {Boolean} true if this date falls on or between the given start and end dates */Date.prototype.between = function(start, end){    var t = this.getTime();    return start.getTime() <= t && t <= end.getTime();}

⌨️ 快捷键说明

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