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

📄 dateutil.as

📁 Flex的JSON类库
💻 AS
📖 第 1 页 / 共 2 页
字号:
				var day:String = null;								if (dateParts[0].search(/\d/) == -1)				{					day = dateParts.shift().replace(/\W/, "");				}								var date:Number = Number(dateParts.shift());				var month:Number = Number(DateUtil.getShortMonthIndex(dateParts.shift()));				var year:Number = Number(dateParts.shift());				var timeParts:Array = dateParts.shift().split(":");				var hour:Number = int(timeParts.shift());				var minute:Number = int(timeParts.shift());				var second:Number = (timeParts.length > 0) ? int(timeParts.shift()): 0;					var milliseconds:Number = Date.UTC(year, month, date, hour, minute, second, 0);					var timezone:String = dateParts.shift();				var offset:Number = 0;				if (timezone.search(/\d/) == -1)				{					switch(timezone)					{						case "UT":							offset = 0;							break;						case "UTC":							offset = 0;							break;						case "GMT":							offset = 0;							break;						case "EST":							offset = (-5 * 3600000);							break;						case "EDT":							offset = (-4 * 3600000);							break;						case "CST":							offset = (-6 * 3600000);							break;						case "CDT":							offset = (-5 * 3600000);							break;						case "MST":							offset = (-7 * 3600000);							break;						case "MDT":							offset = (-6 * 3600000);							break;						case "PST":							offset = (-8 * 3600000);							break;						case "PDT":							offset = (-7 * 3600000);							break;						case "Z":							offset = 0;							break;						case "A":							offset = (-1 * 3600000);							break;						case "M":							offset = (-12 * 3600000);							break;						case "N":							offset = (1 * 3600000);							break;						case "Y":							offset = (12 * 3600000);							break;						default:							offset = 0;					}				}				else				{					var multiplier:Number = 1;					var oHours:Number = 0;					var oMinutes:Number = 0;					if (timezone.length != 4)					{						if (timezone.charAt(0) == "-")						{							multiplier = -1;						}						timezone = timezone.substr(1, 4);					}					oHours = Number(timezone.substr(0, 2));					oMinutes = Number(timezone.substr(2, 2));					offset = (((oHours * 3600000) + (oMinutes * 60000)) * multiplier);				}				finalDate = new Date(milliseconds - offset);				if (finalDate.toString() == "Invalid Date")				{					throw new Error("This date does not conform to RFC822.");				}			}			catch (e:Error)			{				var eStr:String = "Unable to parse the string [" +str+ "] into a date. ";				eStr += "The internal error was: " + e.toString();				throw new Error(eStr);			}            return finalDate;		}	     		/**		* Returns a date string formatted according to RFC822.		*		* @param d		*		* @returns		*		* @langversion ActionScript 3.0		* @playerversion Flash 9.0		* @tiptext		*		* @see http://asg.web.cmu.edu/rfc/rfc822.html		*/			public static function toRFC822(d:Date):String		{			var date:Number = d.getUTCDate();			var hours:Number = d.getUTCHours();			var minutes:Number = d.getUTCMinutes();			var seconds:Number = d.getUTCSeconds();			var sb:String = new String();			sb += DateBase.dayNamesShort[d.getUTCDay()];			sb += ", ";						if (date < 10)			{				sb += "0";			}			sb += date;			sb += " ";			//sb += DateUtil.SHORT_MONTH[d.getUTCMonth()];			sb += DateBase.monthNamesShort[d.getUTCMonth()];			sb += " ";			sb += d.getUTCFullYear();			sb += " ";			if (hours < 10)			{							sb += "0";			}			sb += hours;			sb += ":";			if (minutes < 10)			{							sb += "0";			}			sb += minutes;			sb += ":";			if (seconds < 10)			{							sb += "0";			}			sb += seconds;			sb += " GMT";			return sb;		}	     		/**		* Parses dates that conform to the W3C Date-time Format into Date objects.		*		* This function is useful for parsing RSS 1.0 and Atom 1.0 dates.		*		* @param str		*		* @returns		*		* @langversion ActionScript 3.0		* @playerversion Flash 9.0		* @tiptext		*		* @see http://www.w3.org/TR/NOTE-datetime		*/		     		public static function parseW3CDTF(str:String):Date		{            var finalDate:Date;			try			{				var dateStr:String = str.substring(0, str.indexOf("T"));				var timeStr:String = str.substring(str.indexOf("T")+1, str.length);				var dateArr:Array = dateStr.split("-");				var year:Number = Number(dateArr.shift());				var month:Number = Number(dateArr.shift());				var date:Number = Number(dateArr.shift());								var multiplier:Number;				var offsetHours:Number;				var offsetMinutes:Number;				var offsetStr:String;								if (timeStr.indexOf("Z") != -1)				{					multiplier = 1;					offsetHours = 0;					offsetMinutes = 0;					timeStr = timeStr.replace("Z", "");				}				else if (timeStr.indexOf("+") != -1)				{					multiplier = 1;					offsetStr = timeStr.substring(timeStr.indexOf("+")+1, timeStr.length);					offsetHours = Number(offsetStr.substring(0, offsetStr.indexOf(":")));					offsetMinutes = Number(offsetStr.substring(offsetStr.indexOf(":")+1, offsetStr.length));					timeStr = timeStr.substring(0, timeStr.indexOf("+"));				}				else // offset is -				{					multiplier = -1;					offsetStr = timeStr.substring(timeStr.indexOf("-")+1, timeStr.length);					offsetHours = Number(offsetStr.substring(0, offsetStr.indexOf(":")));					offsetMinutes = Number(offsetStr.substring(offsetStr.indexOf(":")+1, offsetStr.length));					timeStr = timeStr.substring(0, timeStr.indexOf("-"));				}				var timeArr:Array = timeStr.split(":");				var hour:Number = Number(timeArr.shift());				var minutes:Number = Number(timeArr.shift());				var secondsArr:Array = (timeArr.length > 0) ? String(timeArr.shift()).split(".") : null;				var seconds:Number = (secondsArr != null && secondsArr.length > 0) ? Number(secondsArr.shift()) : 0;				var milliseconds:Number = (secondsArr != null && secondsArr.length > 0) ? Number(secondsArr.shift()) : 0;				var utc:Number = Date.UTC(year, month-1, date, hour, minutes, seconds, milliseconds);				var offset:Number = (((offsetHours * 3600000) + (offsetMinutes * 60000)) * multiplier);				finalDate = new Date(utc - offset);					if (finalDate.toString() == "Invalid Date")				{					throw new Error("This date does not conform to W3CDTF.");				}			}			catch (e:Error)			{				var eStr:String = "Unable to parse the string [" +str+ "] into a date. ";				eStr += "The internal error was: " + e.toString();				throw new Error(eStr);			}            return finalDate;		}	     		/**		* Returns a date string formatted according to W3CDTF.		*		* @param d		* @param includeMilliseconds Determines whether to include the		* milliseconds value (if any) in the formatted string.		*		* @returns		*		* @langversion ActionScript 3.0		* @playerversion Flash 9.0		* @tiptext		*		* @see http://www.w3.org/TR/NOTE-datetime		*/		     		public static function toW3CDTF(d:Date,includeMilliseconds:Boolean=false):String		{			var date:Number = d.getUTCDate();			var month:Number = d.getUTCMonth();			var hours:Number = d.getUTCHours();			var minutes:Number = d.getUTCMinutes();			var seconds:Number = d.getUTCSeconds();			var milliseconds:Number = d.getUTCMilliseconds();			var sb:String = new String();						sb += d.getUTCFullYear();			sb += "-";						//thanks to "dom" who sent in a fix for the line below			if (month + 1 < 10)			{				sb += "0";			}			sb += month + 1;			sb += "-";			if (date < 10)			{				sb += "0";			}			sb += date;			sb += "T";			if (hours < 10)			{				sb += "0";			}			sb += hours;			sb += ":";			if (minutes < 10)			{				sb += "0";			}			sb += minutes;			sb += ":";			if (seconds < 10)			{				sb += "0";			}			sb += seconds;			if (includeMilliseconds && milliseconds > 0)			{				sb += ".";				sb += milliseconds;			}			sb += "-00:00";			return sb;		}				/**		 * Converts a date into just after midnight.		 */		public static function makeMorning(d:Date):Date		{			var d:Date = new Date(d.time);			d.hours = 0;            d.minutes = 0;            d.seconds = 0;            d.milliseconds = 0;            return d;		}				/**		 * Converts a date into just befor midnight.		 */		public static function makeNight(d:Date):Date		{			var d:Date = new Date(d.time);			d.hours = 23;            d.minutes = 59;            d.seconds = 59;            d.milliseconds = 999;				            return d;		}		/**		 * Sort of converts a date into UTC.		 */		public static function getUTCDate(d:Date):Date		{			var nd:Date = new Date();			var offset:Number = d.getTimezoneOffset() * 60 * 1000; 			nd.setTime(d.getTime() + offset);			return nd;		}	}}

⌨️ 快捷键说明

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