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

📄 format.js

📁 尚学堂oa项目源码,用户管理
💻 JS
📖 第 1 页 / 共 2 页
字号:
/*	Copyright (c) 2004-2006, The Dojo Foundation	All Rights Reserved.	Licensed under the Academic Free License version 2.1 or above OR the	modified BSD license. For more information on Dojo licensing, see:		http://dojotoolkit.org/community/licensing.shtml*/dojo.provide("dojo.date.format");dojo.require("dojo.date.common");dojo.require("dojo.date.supplemental");dojo.require("dojo.lang.array");dojo.require("dojo.lang.common");dojo.require("dojo.lang.func");dojo.require("dojo.string.common");dojo.require("dojo.i18n.common");dojo.requireLocalization("dojo.i18n.calendar", "gregorian", null, "ko,zh-cn,zh,sv,ja,en,zh-tw,it,hu,nl,fi,zh-hk,fr,pt,ROOT,es,de,pt-br");dojo.requireLocalization("dojo.i18n.calendar", "gregorianExtras", null, "zh,ROOT,ja");(function () {	dojo.date.format = function (dateObject, options) {		if (typeof options == "string") {			dojo.deprecated("dojo.date.format", "To format dates with POSIX-style strings, please use dojo.date.strftime instead", "0.5");			return dojo.date.strftime(dateObject, options);		}		function formatPattern(dateObject, pattern) {			return pattern.replace(/([a-z])\1*/ig, function (match) {				var s;				var c = match.charAt(0);				var l = match.length;				var pad;				var widthList = ["abbr", "wide", "narrow"];				switch (c) {				  case "G":					if (l > 3) {						dojo.unimplemented("Era format not implemented");					}					s = info.eras[dateObject.getFullYear() < 0 ? 1 : 0];					break;				  case "y":					s = dateObject.getFullYear();					switch (l) {					  case 1:						break;					  case 2:						s = String(s).substr(-2);						break;					  default:						pad = true;					}					break;				  case "Q":				  case "q":					s = Math.ceil((dateObject.getMonth() + 1) / 3);					switch (l) {					  case 1:					  case 2:						pad = true;						break;					  case 3:					  case 4:						dojo.unimplemented("Quarter format not implemented");					}					break;				  case "M":				  case "L":					var m = dateObject.getMonth();					var width;					switch (l) {					  case 1:					  case 2:						s = m + 1;						pad = true;						break;					  case 3:					  case 4:					  case 5:						width = widthList[l - 3];						break;					}					if (width) {						var type = (c == "L") ? "standalone" : "format";						var prop = ["months", type, width].join("-");						s = info[prop][m];					}					break;				  case "w":					var firstDay = 0;					s = dojo.date.getWeekOfYear(dateObject, firstDay);					pad = true;					break;				  case "d":					s = dateObject.getDate();					pad = true;					break;				  case "D":					s = dojo.date.getDayOfYear(dateObject);					pad = true;					break;				  case "E":				  case "e":				  case "c":					var d = dateObject.getDay();					var width;					switch (l) {					  case 1:					  case 2:						if (c == "e") {							var first = dojo.date.getFirstDayOfWeek(options.locale);							d = (d - first + 7) % 7;						}						if (c != "c") {							s = d + 1;							pad = true;							break;						}					  case 3:					  case 4:					  case 5:						width = widthList[l - 3];						break;					}					if (width) {						var type = (c == "c") ? "standalone" : "format";						var prop = ["days", type, width].join("-");						s = info[prop][d];					}					break;				  case "a":					var timePeriod = (dateObject.getHours() < 12) ? "am" : "pm";					s = info[timePeriod];					break;				  case "h":				  case "H":				  case "K":				  case "k":					var h = dateObject.getHours();					switch (c) {					  case "h":						s = (h % 12) || 12;						break;					  case "H":						s = h;						break;					  case "K":						s = (h % 12);						break;					  case "k":						s = h || 24;						break;					}					pad = true;					break;				  case "m":					s = dateObject.getMinutes();					pad = true;					break;				  case "s":					s = dateObject.getSeconds();					pad = true;					break;				  case "S":					s = Math.round(dateObject.getMilliseconds() * Math.pow(10, l - 3));					break;				  case "v":				  case "z":					s = dojo.date.getTimezoneName(dateObject);					if (s) {						break;					}					l = 4;				  case "Z":					var offset = dateObject.getTimezoneOffset();					var tz = [(offset <= 0 ? "+" : "-"), dojo.string.pad(Math.floor(Math.abs(offset) / 60), 2), dojo.string.pad(Math.abs(offset) % 60, 2)];					if (l == 4) {						tz.splice(0, 0, "GMT");						tz.splice(3, 0, ":");					}					s = tz.join("");					break;				  case "Y":				  case "u":				  case "W":				  case "F":				  case "g":				  case "A":					dojo.debug(match + " modifier not yet implemented");					s = "?";					break;				  default:					dojo.raise("dojo.date.format: invalid pattern char: " + pattern);				}				if (pad) {					s = dojo.string.pad(s, l);				}				return s;			});		}		options = options || {};		var locale = dojo.hostenv.normalizeLocale(options.locale);		var formatLength = options.formatLength || "full";		var info = dojo.date._getGregorianBundle(locale);		var str = [];		var sauce = dojo.lang.curry(this, formatPattern, dateObject);		if (options.selector != "timeOnly") {			var datePattern = options.datePattern || info["dateFormat-" + formatLength];			if (datePattern) {				str.push(_processPattern(datePattern, sauce));			}		}		if (options.selector != "dateOnly") {			var timePattern = options.timePattern || info["timeFormat-" + formatLength];			if (timePattern) {				str.push(_processPattern(timePattern, sauce));			}		}		var result = str.join(" ");		return result;	};	dojo.date.parse = function (value, options) {		options = options || {};		var locale = dojo.hostenv.normalizeLocale(options.locale);		var info = dojo.date._getGregorianBundle(locale);		var formatLength = options.formatLength || "full";		if (!options.selector) {			options.selector = "dateOnly";		}		var datePattern = options.datePattern || info["dateFormat-" + formatLength];		var timePattern = options.timePattern || info["timeFormat-" + formatLength];		var pattern;		if (options.selector == "dateOnly") {			pattern = datePattern;		} else {			if (options.selector == "timeOnly") {				pattern = timePattern;			} else {				if (options.selector == "dateTime") {					pattern = datePattern + " " + timePattern;				} else {					var msg = "dojo.date.parse: Unknown selector param passed: '" + options.selector + "'.";					msg += " Defaulting to date pattern.";					dojo.debug(msg);					pattern = datePattern;				}			}		}		var groups = [];		var dateREString = _processPattern(pattern, dojo.lang.curry(this, _buildDateTimeRE, groups, info, options));		var dateRE = new RegExp("^" + dateREString + "$");		var match = dateRE.exec(value);		if (!match) {			return null;		}		var widthList = ["abbr", "wide", "narrow"];		var result = new Date(1972, 0);		var expected = {};		for (var i = 1; i < match.length; i++) {			var grp = groups[i - 1];			var l = grp.length;			var v = match[i];			switch (grp.charAt(0)) {			  case "y":				if (l != 2) {					result.setFullYear(v);					expected.year = v;				} else {					if (v < 100) {						v = Number(v);						var year = "" + new Date().getFullYear();						var century = year.substring(0, 2) * 100;						var yearPart = Number(year.substring(2, 4));						var cutoff = Math.min(yearPart + 20, 99);						var num = (v < cutoff) ? century + v : century - 100 + v;						result.setFullYear(num);						expected.year = num;					} else {						if (options.strict) {							return null;						}						result.setFullYear(v);						expected.year = v;					}				}				break;			  case "M":				if (l > 2) {					if (!options.strict) {						v = v.replace(/\./g, "");						v = v.toLowerCase();					}					var months = info["months-format-" + widthList[l - 3]].concat();					for (var j = 0; j < months.length; j++) {						if (!options.strict) {							months[j] = months[j].toLowerCase();						}						if (v == months[j]) {							result.setMonth(j);							expected.month = j;							break;						}					}					if (j == months.length) {						dojo.debug("dojo.date.parse: Could not parse month name: '" + v + "'.");						return null;					}				} else {					result.setMonth(v - 1);					expected.month = v - 1;				}				break;			  case "E":			  case "e":				if (!options.strict) {					v = v.toLowerCase();				}				var days = info["days-format-" + widthList[l - 3]].concat();				for (var j = 0; j < days.length; j++) {					if (!options.strict) {						days[j] = days[j].toLowerCase();					}					if (v == days[j]) {						break;					}				}				if (j == days.length) {					dojo.debug("dojo.date.parse: Could not parse weekday name: '" + v + "'.");					return null;				}				break;			  case "d":				result.setDate(v);				expected.date = v;				break;			  case "a":				var am = options.am || info.am;				var pm = options.pm || info.pm;				if (!options.strict) {					v = v.replace(/\./g, "").toLowerCase();					am = am.replace(/\./g, "").toLowerCase();					pm = pm.replace(/\./g, "").toLowerCase();				}				if (options.strict && v != am && v != pm) {					dojo.debug("dojo.date.parse: Could not parse am/pm part.");					return null;				}				var hours = result.getHours();				if (v == pm && hours < 12) {					result.setHours(hours + 12);				} else {					if (v == am && hours == 12) {						result.setHours(0);					}				}				break;

⌨️ 快捷键说明

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