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

📄 serialize.js

📁 基于Php和Mysql的项目管理软件
💻 JS
字号:
/*	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.serialize");dojo.require("dojo.string.common");/* ISO 8601 Functions *********************/dojo.date.setIso8601 = function(/*Date*/dateObject, /*String*/formattedString){	// summary: sets a Date object based on an ISO 8601 formatted string (uses date and time)	var comps = (formattedString.indexOf("T") == -1) ? formattedString.split(" ") : formattedString.split("T");	dateObject = dojo.date.setIso8601Date(dateObject, comps[0]);	if(comps.length == 2){ dateObject = dojo.date.setIso8601Time(dateObject, comps[1]); }	return dateObject; /* Date or null */};dojo.date.fromIso8601 = function(/*String*/formattedString){	// summary: returns a Date object based on an ISO 8601 formatted string (uses date and time)	return dojo.date.setIso8601(new Date(0, 0), formattedString);};dojo.date.setIso8601Date = function(/*String*/dateObject, /*String*/formattedString){	// summary: sets a Date object based on an ISO 8601 formatted string (date only)	var regexp = "^([0-9]{4})((-?([0-9]{2})(-?([0-9]{2}))?)|" +			"(-?([0-9]{3}))|(-?W([0-9]{2})(-?([1-7]))?))?$";	var d = formattedString.match(new RegExp(regexp));	if(!d){		dojo.debug("invalid date string: " + formattedString);		return null; // null	}	var year = d[1];	var month = d[4];	var date = d[6];	var dayofyear = d[8];	var week = d[10];	var dayofweek = d[12] ? d[12] : 1;	dateObject.setFullYear(year);	if(dayofyear){		dateObject.setMonth(0);		dateObject.setDate(Number(dayofyear));	}	else if(week){		dateObject.setMonth(0);		dateObject.setDate(1);		var gd = dateObject.getDay();		var day =  gd ? gd : 7;		var offset = Number(dayofweek) + (7 * Number(week));				if(day <= 4){ dateObject.setDate(offset + 1 - day); }		else{ dateObject.setDate(offset + 8 - day); }	} else{		if(month){			dateObject.setDate(1);			dateObject.setMonth(month - 1); 		}		if(date){ dateObject.setDate(date); }	}		return dateObject; // Date};dojo.date.fromIso8601Date = function(/*String*/formattedString){	// summary: returns a Date object based on an ISO 8601 formatted string (date only)	return dojo.date.setIso8601Date(new Date(0, 0), formattedString);};dojo.date.setIso8601Time = function(/*Date*/dateObject, /*String*/formattedString){	// summary: sets a Date object based on an ISO 8601 formatted string (time only)	// first strip timezone info from the end	var timezone = "Z|(([-+])([0-9]{2})(:?([0-9]{2}))?)$";	var d = formattedString.match(new RegExp(timezone));	var offset = 0; // local time if no tz info	if(d){		if(d[0] != 'Z'){			offset = (Number(d[3]) * 60) + Number(d[5]);			offset *= ((d[2] == '-') ? 1 : -1);		}		offset -= dateObject.getTimezoneOffset();		formattedString = formattedString.substr(0, formattedString.length - d[0].length);	}	// then work out the time	var regexp = "^([0-9]{2})(:?([0-9]{2})(:?([0-9]{2})(\.([0-9]+))?)?)?$";	d = formattedString.match(new RegExp(regexp));	if(!d){		dojo.debug("invalid time string: " + formattedString);		return null; // null	}	var hours = d[1];	var mins = Number((d[3]) ? d[3] : 0);	var secs = (d[5]) ? d[5] : 0;	var ms = d[7] ? (Number("0." + d[7]) * 1000) : 0;	dateObject.setHours(hours);	dateObject.setMinutes(mins);	dateObject.setSeconds(secs);	dateObject.setMilliseconds(ms);	if(offset !== 0){		dateObject.setTime(dateObject.getTime() + offset * 60000);	}		return dateObject; // Date};dojo.date.fromIso8601Time = function(/*String*/formattedString){	// summary: returns a Date object based on an ISO 8601 formatted string (date only)	return dojo.date.setIso8601Time(new Date(0, 0), formattedString);};/* RFC-3339 Date Functions *************************/dojo.date.toRfc3339 = function(/*Date?*/dateObject, /*String?*/selector){//	summary://		Format a JavaScript Date object as a string according to RFC 3339////	dateObject://		A JavaScript date, or the current date and time, by default////	selector://		"dateOnly" or "timeOnly" to format selected portions of the Date object.//		Date and time will be formatted by default.//FIXME: tolerate Number, string input?	if(!dateObject){		dateObject = new Date();	}	var _ = dojo.string.pad;	var formattedDate = [];	if(selector != "timeOnly"){		var date = [_(dateObject.getFullYear(),4), _(dateObject.getMonth()+1,2), _(dateObject.getDate(),2)].join('-');		formattedDate.push(date);	}	if(selector != "dateOnly"){		var time = [_(dateObject.getHours(),2), _(dateObject.getMinutes(),2), _(dateObject.getSeconds(),2)].join(':');		var timezoneOffset = dateObject.getTimezoneOffset();		time += (timezoneOffset > 0 ? "-" : "+") + 					_(Math.floor(Math.abs(timezoneOffset)/60),2) + ":" +					_(Math.abs(timezoneOffset)%60,2);		formattedDate.push(time);	}	return formattedDate.join('T'); // String};dojo.date.fromRfc3339 = function(/*String*/rfcDate){//	summary://		Create a JavaScript Date object from a string formatted according to RFC 3339////	rfcDate://		A string such as 2005-06-30T08:05:00-07:00//		"any" is also supported in place of a time.	// backwards compatible support for use of "any" instead of just not 	// including the time	if(rfcDate.indexOf("Tany")!=-1){		rfcDate = rfcDate.replace("Tany","");	}	var dateObject = new Date();	return dojo.date.setIso8601(dateObject, rfcDate); // Date or null};

⌨️ 快捷键说明

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