亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? calendar-date-core.js

?? js日期插件
?? JS
字號:
/* $Id: calendar-date-core.js 6805 2007-03-30 12:36:39Z slip $ *//** * * Copyright (c) 2004-2006 by Zapatec, Inc. * http://www.zapatec.com * 1700 MLK Way, Berkeley, California, * 94709, U.S.A. * All rights reserved. */// BEGIN: DATE OBJECT PATCHES/** \defgroup DateExtras Augmenting the Date object with some utility functions * and variables. *///@{Date._MD = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; /**< Number of days in each month */Date.SECOND = 1000;		/**< One second has 1000 milliseconds. */Date.MINUTE = 60 * Date.SECOND;	/**< One minute has 60 seconds. */Date.HOUR   = 60 * Date.MINUTE;	/**< One hour has 60 minutes. */Date.DAY    = 24 * Date.HOUR;	/**< One day has 24 hours. */Date.WEEK   =  7 * Date.DAY;	/**< One week has 7 days. *//** Returns the number of days in the month.  The \em month parameter is * optional; if not passed, the current month of \b this Date object is * assumed. * * @param month [int, optional] the month number, 0 for January. */Date.prototype.getMonthDays = function(month) {	var year = this.getFullYear();	if (typeof month == "undefined") {		month = this.getMonth();	}	if (((0 == (year%4)) && ( (0 != (year%100)) || (0 == (year%400)))) && month == 1) {		return 29;	} else {		return Date._MD[month];	}};/** Returns the number of the current day in the current year. */Date.prototype.getDayOfYear = function() {	var now = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);	var then = new Date(this.getFullYear(), 0, 0, 0, 0, 0);	var time = now - then;	return Math.round(time / Date.DAY);};/** Returns the number of the week in year, as defined in ISO 8601. */Date.prototype.getWeekNumber = function() {	var d = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);	var DoW = d.getDay();	d.setDate(d.getDate() - (DoW + 6) % 7 + 3); // Nearest Thu	var ms = d.valueOf(); // GMT	d.setMonth(0);	d.setDate(4); // Thu in Week 1	return Math.round((ms - d.valueOf()) / (7 * 864e5)) + 1;};/** Checks dates equality.  Checks time too. */Date.prototype.equalsTo = function(date) {	return ((this.getFullYear() == date.getFullYear()) &&		(this.getMonth() == date.getMonth()) &&		(this.getDate() == date.getDate()) &&		(this.getHours() == date.getHours()) &&		(this.getMinutes() == date.getMinutes()));};/** Checks dates equality.  Ignores time. */Date.prototype.dateEqualsTo = function(date) {	return ((this.getFullYear() == date.getFullYear()) &&		(this.getMonth() == date.getMonth()) &&		(this.getDate() == date.getDate()));};/** Set only the year, month, date parts (keep existing time) */Date.prototype.setDateOnly = function(date) {	var tmp = new Date(date);	this.setDate(1);	this.setFullYear(tmp.getFullYear());	this.setMonth(tmp.getMonth());	this.setDate(tmp.getDate());};/** Prints the date in a string according to the given format. * * The format (\b str) may contain the following specialties: * * - %%a - Abbreviated weekday name * - %%A - Full weekday name * - %%b - Abbreviated month name * - %%B - Full month name * - %%C - Century number * - %%d - The day of the month (00 .. 31) * - %%e - The day of the month (0 .. 31) * - %%H - Hour (00 .. 23) * - %%I - Hour (01 .. 12) * - %%j - The day of the year (000 .. 366) * - %%k - Hour (0 .. 23) * - %%l - Hour (1 .. 12) * - %%m - Month (01 .. 12) * - %%M - Minute (00 .. 59) * - %%n - A newline character * - %%p - "PM" or "AM" * - %%P - "pm" or "am" * - %%S - Second (00 .. 59) * - %%s - Number of seconds since Epoch * - %%t - A tab character * - %%W - The week number (as per ISO 8601) * - %%u - The day of week (1 .. 7, 1 = Monday) * - %%w - The day of week (0 .. 6, 0 = Sunday) * - %%y - Year without the century (00 .. 99) * - %%Y - Year including the century (ex. 1979) * - %%% - A literal %% character * * They are almost the same as for the POSIX strftime function. * * @param str [string] the format to print date in. */Date.prototype.print = function (str) {	var m = this.getMonth();	var d = this.getDate();	var y = this.getFullYear();	var wn = this.getWeekNumber();	var w = this.getDay();	var s = {};	var hr = this.getHours();	var pm = (hr >= 12);	var ir = (pm) ? (hr - 12) : hr;	var dy = this.getDayOfYear();	if (ir == 0)		ir = 12;	var min = this.getMinutes();	var sec = this.getSeconds();	s["%a"] = Zapatec.Calendar.i18n(w, "sdn"); // abbreviated weekday name [FIXME: I18N]	s["%A"] = Zapatec.Calendar.i18n(w, "dn"); // full weekday name	s["%b"] = Zapatec.Calendar.i18n(m, "smn"); // abbreviated month name [FIXME: I18N]	s["%B"] = Zapatec.Calendar.i18n(m, "mn"); // full month name	// FIXME: %c : preferred date and time representation for the current locale	s["%C"] = 1 + Math.floor(y / 100); // the century number	s["%d"] = (d < 10) ? ("0" + d) : d; // the day of the month (range 01 to 31)	s["%e"] = d; // the day of the month (range 1 to 31)	// FIXME: %D : american date style: %m/%d/%y	// FIXME: %E, %F, %G, %g, %h (man strftime)	s["%H"] = (hr < 10) ? ("0" + hr) : hr; // hour, range 00 to 23 (24h format)	s["%I"] = (ir < 10) ? ("0" + ir) : ir; // hour, range 01 to 12 (12h format)	s["%j"] = (dy < 100) ? ((dy < 10) ? ("00" + dy) : ("0" + dy)) : dy; // day of the year (range 001 to 366)	s["%k"] = hr ? hr :  "0"; // hour, range 0 to 23 (24h format)	s["%l"] = ir;		// hour, range 1 to 12 (12h format)	s["%m"] = (m < 9) ? ("0" + (1+m)) : (1+m); // month, range 01 to 12	s["%M"] = (min < 10) ? ("0" + min) : min; // minute, range 00 to 59	s["%n"] = "\n";		// a newline character	s["%p"] = pm ? "PM" : "AM";	s["%P"] = pm ? "pm" : "am";	// FIXME: %r : the time in am/pm notation %I:%M:%S %p	// FIXME: %R : the time in 24-hour notation %H:%M	s["%s"] = Math.floor(this.getTime() / 1000);	s["%S"] = (sec < 10) ? ("0" + sec) : sec; // seconds, range 00 to 59	s["%t"] = "\t";		// a tab character	// FIXME: %T : the time in 24-hour notation (%H:%M:%S)	s["%U"] = s["%W"] = s["%V"] = (wn < 10) ? ("0" + wn) : wn;  s["%u"] = (w == 0) ? 7 : w; // the day of the week (range 1 to 7, 1 = MON)	s["%w"] = w ? w : "0";		// the day of the week (range 0 to 6, 0 = SUN)	// FIXME: %x : preferred date representation for the current locale without the time	// FIXME: %X : preferred time representation for the current locale without the date	s["%y"] = '' + y % 100; // year without the century (range 00 to 99)	if (s["%y"] < 10) {		s["%y"] = "0" + s["%y"];	}	s["%Y"] = y;		// year with the century	s["%%"] = "%";		// a literal '%' character	var re = /%./g;	var a = str.match(re) || [];	for (var i = 0; i < a.length; i++) {		var tmp = s[a[i]];		if (tmp) {			re = new RegExp(a[i], 'g');			str = str.replace(re, tmp);		}	}	return str;};/** * Parses a date from a string in the specified format. * This function requires strict following of the string to  * the format template, and any difference causes failure * to be returned. Also function refuses to parse formats * which containing number rules that have not fixed length * and are not separated from the next number rule by any * character string, as this requires complication of algorythm * and still sometimes is impossible to parse. * * @param str [string] the date as a string * @param format [string] the format to try to parse the date in * * @return [Date] a date object containing the parsed date or \b null if for * some reason the date couldn't be parsed. */Date.parseDate = function (str, format) {	var fmt = format, strPointer = 0, token = null, parseFunc = null, valueLength = null, 	valueRange = null, valueType = null, date = new Date(), values = {};	//need to have a way to determine whether rule is number	var numberRules = ["%d", "%H", "%I", "%m", "%M", "%S", "%s", "%W", "%u", 	                       "%w", "%y", "%e", "%k", "%l", "%s", "%Y", "%C"];	function isNumberRule(rule) {		if (Zapatec.Utils.arrIndexOf(numberRules, rule) != -1) {			return true;		}		return false;	}	//parses string value from translation table	function parseString() {		for(var iString = valueRange[0]; iString < valueRange[1]; ++iString) {			//checking if there is translation			var value = Zapatec.Calendar.i18n(iString, valueType);			if (!value) {				return null;			}			//comparing with our part of the string			if (value == str.substr(strPointer, value.length)) {				//increasing string pointer				valueLength = value.length;				return iString;			}		}		return null;	}	//parses the number from beginning of string	function parseNumber() {		var val = str.substr(strPointer, valueLength);		if (val.length != valueLength || /$\d+^/.test(val)) {			return null;		}		return parseInt(val, 10);	}	//parses AM PM rule	function parseAMPM() {		var result = (str.substr(strPointer, valueLength).toLowerCase() == Zapatec.Calendar.i18n("pm", "ampm")) ? true : false;		return result || ((str.substr(strPointer, valueLength).toLowerCase() == Zapatec.Calendar.i18n("am", "ampm")) ? false : null);	}	//parses formating character	function parseCharacter() {		return "";	}	//parses the rule to the array	function parseRule(rule) {		return (values[rule] = parseFunc());	}	//function determines if rule value was parsed	function wasParsed(rule) {		if (typeof rule == "undefined" || rule === null) {			return false;		}		return true;	}	//gets first defined value or null if no	function getValue() {		for(var i = 0; i < arguments.length; ++i) {			if (arguments[i] !== null && typeof arguments[i] != "undefined" && !isNaN(arguments[i])) {				return arguments[i];			}		}		return null;	}	if (typeof fmt != "string" || typeof str != "string" || str == "" || fmt == "") {		return null;	}	//cycle breaks format into tokens and checks or parses them	while(fmt) {		//this is the default value type		parseFunc = parseNumber;		//taking char token(that doesn't hold any information)		valueLength = fmt.indexOf("%");		valueLength = (valueLength == -1) ? fmt.length : valueLength;		token = fmt.slice(0, valueLength);		//checking if we have same token in parsed string		if (token != str.substr(strPointer, valueLength)) {			return null;		}		//skiping it		strPointer += valueLength;		fmt = fmt.slice(valueLength);		if (fmt == "") {			break;		}		//taking formating rule		token = fmt.slice(0, 2);		//this is the default length of value, as it is very often one for rules		valueLength = 2;		switch (token) {			case "%A" :			case "%a" : {				valueType = (token == "%A") ? "dn" : "sdn";				valueRange = [0, 7];				parseFunc = parseString;				break;			}			case "%B" :			case "%b" : {				valueType = (token == "%B") ? "mn" : "smn";				valueRange = [0, 12];				parseFunc = parseString;				break;			}			case "%p" : 			case "%P" : {				parseFunc = parseAMPM;				break;			}			case "%Y" : {				valueLength = 4;				if (isNumberRule(fmt.substr(2, 2))) {					return null;				}				while(isNaN(parseInt(str.charAt(strPointer + valueLength - 1))) && valueLength > 0) {					--valueLength;				}				if (valueLength == 0) {break;}				break;			}			case "%C" : 			case "%s" : {				valueLength = 1;				if (isNumberRule(fmt.substr(2, 2))) {					return null;				}				while(!isNaN(parseInt(str.charAt(strPointer + valueLength)))) {					++valueLength;				}				break;			}			case "%k" :			case "%l" :			case "%e" : {				valueLength = 1;				if (isNumberRule(fmt.substr(2, 2))) {					return null;				}				if (!isNaN(parseInt(str.charAt(strPointer + 1)))) {					++valueLength;				}				break;			}			case "%j" : valueLength = 3; break;			case "%u" : 			case "%w" : valueLength = 1;			case "%y" :			case "%m" :			case "%d" :			case "%W" :			case "%H" :			case "%I" : 			case "%M" :			case "%S" : {				break;			}		}		if (parseRule(token) === null) {			return null;		}		//increasing pointer		strPointer += valueLength;		//skipint it		fmt = fmt.slice(2);	}	if (wasParsed(values["%s"])) {		date.setTime(values["%s"] * 1000);	} else {		var year = getValue(values["%Y"], values["%y"] + --values["%C"] * 100, 		                    values["%y"] + (date.getFullYear() - date.getFullYear() % 100),		                    values["%C"] * 100 + date.getFullYear() % 100);		var month = getValue(values["%m"] - 1, values["%b"], values["%B"]);		var day = getValue(values["%d"] || values["%e"]);		if (day === null || month === null) {			var dayOfWeek = getValue(values["%a"], values["%A"], values["%u"] == 7 ? 0 : values["%u"], values["%w"]);		}		var hour = getValue(values["%H"], values["%k"]);		if (hour === null && (wasParsed(values["%p"]) || wasParsed(values["%P"]))) {			var pm = getValue(values["%p"], values["%P"]);			hour = getValue(values["%I"], values["%l"]);			hour = pm ? ((hour == 12) ? 12 : (hour + 12)) : ((hour == 12) ? (0) : hour);		}		if (year || year === 0) {			date.setFullYear(year);		}		if (month || month === 0) {			date.setMonth(month);		}		if (day || day === 0) {			date.setDate(day);		}		if (wasParsed(values["%j"])) {			date.setMonth(0);			date.setDate(1);			date.setDate(values["%j"]);		}		if (wasParsed(dayOfWeek)) {			date.setDate(date.getDate() + (dayOfWeek - date.getDay()));		}		if (wasParsed(values["%W"])) {			var weekNumber = date.getWeekNumber();			if (weekNumber != values["%W"]) {				date.setDate(date.getDate() + (values["%W"] - weekNumber) * 7);			}		}		if (hour !== null) {			date.setHours(hour);		}		if (wasParsed(values["%M"])) {			date.setMinutes(values["%M"]);		}		if (wasParsed(values["%S"])) {			date.setSeconds(values["%S"]);		}	}	//printing date in the same format and checking if we'll get the same string	if (date.print(format) != str) {		//if not returning error		return null;	}	//or returning parsed date	return date;};Date.prototype.__msh_oldSetFullYear = Date.prototype.setFullYear; /**< save a reference to the original setFullYear function *//** * This function replaces the original Date.setFullYear() with a "safer" * function which makes sure that the month or date aren't modified (unless in * the exceptional case where the date is February 29 but the new year doesn't * contain it). * * @param y [int] the new year to move this date to */Date.prototype.setFullYear = function(y) {	var d = new Date(this);	d.__msh_oldSetFullYear(y);	if (d.getMonth() != this.getMonth())		this.setDate(28);	this.__msh_oldSetFullYear(y);};/** * This function compares only years, months and days of two date objects. * * @return [int] -1 if date1>date2, 1 if date2>date1 or 0 if they are equal * * @param date1 [Date] first date to compare * @param date1 [Date] second date to compare */Date.prototype.compareDatesOnly = function (date1,date2) { 	var year1 = date1.getYear();	var year2 = date2.getYear(); 	var month1 = date1.getMonth(); 	var month2 = date2.getMonth(); 	var day1 = date1.getDate(); 	var day2 = date2.getDate(); 	if (year1 > year2) { return -1;	} 	if (year2 > year1) { return 1; } //years are equal 	if (month1 > month2) { return -1; } 	if (month2 > month1) { return 1; } //years and months are equal 	if (day1 > day2) { return -1; } 	if (day2 > day1) { return 1; } //days are equal 	return 0; }//@}// END: DATE OBJECT PATCHES

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合婷婷久久| 国产精品伊人色| 7777精品久久久大香线蕉| 亚洲成人免费观看| 91精品国产综合久久精品| 麻豆极品一区二区三区| 欧美成人激情免费网| 久久成人18免费观看| 国产婷婷色一区二区三区四区| 国产成人在线影院| 亚洲视频一区在线观看| 欧美日韩一区二区三区不卡| 日韩av一二三| 久久久久亚洲蜜桃| 色综合中文字幕| 日韩精品成人一区二区在线| 久久理论电影网| 91在线免费视频观看| 亚洲午夜精品网| 精品国产一区二区三区久久影院| 国产mv日韩mv欧美| 亚洲第一主播视频| 2019国产精品| 日本精品免费观看高清观看| 日韩在线观看一区二区| 欧美精品一区二区三| 色素色在线综合| 久久爱www久久做| 亚洲欧洲制服丝袜| 精品不卡在线视频| 欧美最猛黑人xxxxx猛交| 免费人成在线不卡| 国产精品久久99| 欧美一级一级性生活免费录像| 高清不卡一区二区在线| 亚洲va天堂va国产va久| 欧美韩日一区二区三区| 在线播放/欧美激情| av在线播放成人| 美女任你摸久久| 一区二区在线观看免费视频播放| 精品免费视频一区二区| 在线观看欧美日本| 国产福利一区在线| 青青草原综合久久大伊人精品| 中文字幕一区免费在线观看| 精品国一区二区三区| 欧美喷水一区二区| jiyouzz国产精品久久| 久久精品国产第一区二区三区 | 91精品国产综合久久福利软件| 成人免费毛片片v| 国产在线视频一区二区| 午夜精品福利久久久| 亚洲欧美国产毛片在线| 国产精品美女视频| 亚洲精品一线二线三线无人区| 宅男噜噜噜66一区二区66| 色综合久久久久| 东方aⅴ免费观看久久av| 久久精品二区亚洲w码| 午夜久久久久久久久| 亚洲精品成人天堂一二三| 中文字幕乱码日本亚洲一区二区| 精品国产伦一区二区三区免费| 欧美一卡二卡在线观看| 欧美三电影在线| 欧美在线视频日韩| 91搞黄在线观看| 日本乱码高清不卡字幕| 色综合天天做天天爱| 91在线视频播放地址| 91在线视频播放| 91在线精品一区二区三区| 99re成人精品视频| 91性感美女视频| 色欧美乱欧美15图片| 色久综合一二码| 欧美性猛交xxxx黑人交 | 欧美视频三区在线播放| 色8久久人人97超碰香蕉987| 色偷偷88欧美精品久久久| 色偷偷一区二区三区| 欧美制服丝袜第一页| 欧美日韩性生活| 在线播放中文一区| 欧美一二三在线| 26uuuu精品一区二区| 国产日韩v精品一区二区| 中文字幕高清一区| 亚洲欧美日韩电影| 亚洲影视资源网| 午夜精品久久久久久久99樱桃| 日韩电影在线观看电影| 精品亚洲欧美一区| 国产一区二区毛片| www.色综合.com| 欧美色涩在线第一页| 日韩精品一区二区三区在线播放| 久久久久久久久久看片| 中文字幕亚洲成人| 性做久久久久久久久| 美女性感视频久久| 成人黄色777网| 欧美日韩久久久| 亚洲精品一区二区三区福利 | 91美女视频网站| 欧美日韩国产另类不卡| 欧美xxxxx裸体时装秀| 国产精品色在线观看| 亚洲成人资源网| 国产精品一卡二卡在线观看| 色诱视频网站一区| 欧美大尺度电影在线| 亚洲国产成人一区二区三区| 亚洲韩国精品一区| 国产一区视频导航| 色老汉一区二区三区| 精品动漫一区二区三区在线观看| 亚洲欧洲综合另类| 国产综合久久久久久久久久久久| 99久久精品国产毛片| 日韩一区二区三区视频在线| 国产精品久久久久影视| 日韩专区一卡二卡| 成人av片在线观看| 欧美刺激脚交jootjob| 亚洲欧美日韩国产综合| 国产乱理伦片在线观看夜一区| 在线观看一区二区视频| 久久天堂av综合合色蜜桃网| 一区二区三区国产精华| 粉嫩aⅴ一区二区三区四区五区| 欧美日韩你懂得| 国产精品久久久久久久久免费丝袜 | 日本二三区不卡| 久久免费看少妇高潮| 视频一区国产视频| 成人av动漫在线| 欧美大片国产精品| 亚洲福利视频一区| 91捆绑美女网站| 欧美国产精品一区| 久久国产视频网| 欧美撒尿777hd撒尿| 亚洲色图欧美在线| 成人污污视频在线观看| 日韩女优电影在线观看| 婷婷国产在线综合| 在线观看亚洲精品视频| 成人欧美一区二区三区白人| 国产一区三区三区| 日韩免费电影一区| 日韩av电影免费观看高清完整版 | 97久久精品人人澡人人爽| 久久精品一区二区| 久久国产精品99久久人人澡| 欧美二区三区的天堂| 亚洲成人一二三| 欧美色手机在线观看| 亚洲综合色网站| 色哟哟一区二区在线观看| 国产精品久久久久影院| 东方aⅴ免费观看久久av| 国产亚洲一区二区三区在线观看| 毛片一区二区三区| 精品国产欧美一区二区| 国产麻豆精品视频| 26uuu国产电影一区二区| 国产在线不卡视频| 久久精品亚洲精品国产欧美kt∨| 国产一区二区免费在线| 国产婷婷色一区二区三区四区| 国产69精品久久777的优势| 久久久电影一区二区三区| 国产91精品免费| 亚洲天堂精品在线观看| 色www精品视频在线观看| 亚洲一卡二卡三卡四卡| 欧美日本一区二区三区四区| 日韩国产欧美三级| 精品欧美乱码久久久久久| 国产传媒一区在线| 中文字幕亚洲电影| 欧美日韩一区二区三区视频| 日本欧美久久久久免费播放网| 日韩免费观看高清完整版| 久久成人免费网站| 国产精品美女一区二区三区| 91成人在线精品| 捆绑调教一区二区三区| 中文乱码免费一区二区| 色综合久久久久久久| 日本一道高清亚洲日美韩| 久久午夜色播影院免费高清| av午夜一区麻豆| 午夜视频一区二区三区| 精品国产麻豆免费人成网站| 99视频有精品| 日韩国产在线一|