`
hudeyong926
  • 浏览: 2018208 次
  • 来自: 武汉
社区版块
存档分类
最新评论

js Date对象的扩展函数

阅读更多

日期 http://momentjs.com/

<script type="text/javascript">
Date.prototype.format = function(format) {
	var o = {
		"M+": this.getMonth() + 1,
		//month
		"d+": this.getDate(),
		//day
		"h+": this.getHours(),
		//hour
		"m+": this.getMinutes(),
		//minute
		"s+": this.getSeconds(),
		//second
		"q+": Math.floor((this.getMonth() + 3) / 3),
		//quarter
		"S": this.getMilliseconds() //millisecond
	}
	if (/(y+)/.test(format)) format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
	for (var k in o)
	if (new RegExp("(" + k + ")").test(format)) format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
	return format;
}
// 日期相差天数
Date.prototype.diff = function(date){
	return Math.ceil((this - date) / (1000 * 60 * 60 * 24));
}

// 日期加减计算
Date.prototype.add = function(days){
	return new Date(this.getTime() + days * (1000 * 60 * 60 * 24));
}

// 日期加减计算
Date.prototype.addMonth = function(months){
	var day = this.getDate();
	var month = this.getMonth() + 1;
	var year = this.getFullYear();
	month += months;
	if(month > 12){
		year += Math.floor(month / 12);
		month = month % 12;
	}
	return Date.parse(month + '/' + day + '/' + year);
}
var ddd = new Date();
document.write(ddd.format('yyyy-MM-dd'));
</script>
 

对象

Object.prototype.clone = function()
{
	if(typeof(this) != "object")
		return this;

	var $cloneDepth = (arguments.length >= 1) ? ((isNaN(parseInt(arguments[0]))) ? null : parseInt(arguments[0])) : null;
	if($cloneDepth)
		$cloneDepth = ($cloneDepth <= 0) ? null : $cloneDepth;

	var $cloneObject = null;
	var $thisConstructor = this.constructor;
	var $thisConstructorPrototype = $thisConstructor.prototype;

	if($thisConstructor == Array)
		$cloneObject = new Array();
	else if($thisConstructor == Object)
		$cloneObject = new Object();
	else
	{
		try
		{
			$cloneObject = new $thisConstructor;
		}
		catch(e)
		{
			$cloneObject = new Object();
			$cloneObject.constructor = $thisConstructor;
			$cloneObject.prototype = $thisConstructorPrototype;
		}
	}

	var $propertyName = "";
	var $newObject = null;

	for($propertyName in this)
	{
		$newObject = this[$propertyName];

		if(!$thisConstructorPrototype[$propertyName])
		{
			if(typeof($newObject) == "object")
			{
				if($newObject === null)
					$cloneObject[$propertyName] = null;
				else
				{
					if($cloneDepth)
					{
						if($cloneDepth == 1)
							$cloneObject[$propertyName] = $newObject;
						else
							$cloneObject[$propertyName] = $newObject.clone(--$cloneDepth);
					}
					else
						$cloneObject[$propertyName] = $newObject.clone();
				}
			}
			else
				$cloneObject[$propertyName] = $newObject;
		}
	}

	return $cloneObject;
}

ss

分享到:
评论

相关推荐

    Javascript 日期对象Date扩展

    Date对象扩展,包括常用中文日期格式解析、加减操作、日期差、周操作和季操作。具体扩展的方法如下: parseCHS--静态方法。解析常用的中文日期并返回日期对象。 add--日期加减操作。[注:此函数在上传时还存在...

    de1.7 轻量级的javascript扩展函数库

    de.js是一个轻量级的javascript扩展函数库,通过扩展页面元素的方法和属性、和扩展javascript内置类型的方法来帮助web前端开发人员实现更便捷和高效的编程。以下是主要特点: 支持类似jquery的选择器,同时支持类似...

    js获取时间函数及扩展函数的方法

    内置的Date函数 var mydate = new Date(); mydate.getYear(); //获取当前年份(2位) mydate.getFullYear(); //获取完整的年份(4位,1970-????) mydate.getMonth(); //获取当前月份(0-11,0代表1月) mydate.getDate(); /...

    Javascript 日期对象Date扩展方法

    今天在网上摘抄了些js中操作日期的相关方法,现在与大家分享一下。 代码如下:[removed] Date.prototype.Format = function(fmt) { //author: meizz var o = { “M+” : this.getMonth() + 1, //月份 “d+” : this....

    javascript函数的解释

    62.addBehavior()是一种JS调用的外部函数文件其扩展名为.htc 63.window.focus()使当前的窗口在所有窗口之前. 64.blur()指失去焦点.与FOCUS()相反. 65.select()指元素为选中状态. 66.防止用户对文本框中输入文本:...

    JavaScript对象验证库js-validator.zip

    js-validator 是 Laravel 风格的 JavaScript 对象验证库。使用 js-validator 来验证对象或者 JSON 是否符合规则非常方便,而且具有很好的可扩展性。举个例子var example = {  text: 'Hello world!',  date: ...

    Ext JS框架中日期函数的用法及日期选择控件的实现

    Ext.Date是一个单例,封装了一系列日期操作函数,扩展JavaScript Date的功能,下面列出一些常用的功能。 基本函数: Ext.Date.add(date, interval, value) 给date增加或减少时间,这个函数不改变原有Date对象的值,...

    JavaScript-Objects-Extensions-for-Meteor:Meteor 的有用 JavaScript 对象扩展

    Meteor 的有用对象扩展 日期: Date.now() - 如果 Date 对象没有 now() 方法,则修复...someArray.inArray(needle, searchInKey, searchByKey) - 在 inArray 函数中扩展对象原型 someArray.diff(comparableArray) - 比

    js对象与打印对象分析比较

    根据JS的对象扩展机制,用户可以自定义JS对象,这与Java语言有类似的地方。与自定义对象相对应的是JS标准对象,例如Date、Array、Math等等。2,原型(prototype)在JS中,这是一种创建对象属性和方法的方式,通过...

    源文件程序天下JAVASCRIPT实例自学手册

    6.4 Date对象 6.4.1 生成日期对象的实例 6.4.2 如何提取日期各字段 6.4.3 如何设置日期各字段 6.4.4 将日期转化为字符串 6.5 Number对象 6.5.1 创建Number对象的实例 6.5.2 将Number对象转化为字符串 6.5.3 通过原型...

    JavaScript基础和实例代码

    6.4 Date对象 6.4.1 生成日期对象的实例 6.4.2 如何提取日期各字段 6.4.3 如何设置日期各字段 6.4.4 将日期转化为字符串 6.5 Number对象 6.5.1 创建Number对象的实例 6.5.2 将Number对象转化为字符串 6.5.3 通过原型...

    JavaScript详解(第2版)

     8.5 通过原型扩展对象   8.5.1 使用prototype属性为对象添加属性   8.5.2 原型查找链   8.5.3 使用原型为对象添加方法   8.5.4 所有对象都有的属性和方法   8.5.5 创建子类及继承   8.6 应知应...

    JavaScript自定义日期格式化函数详细解析

    我们对 JavaScript 扩展其中一个较常的做法便是对 Date.prototype 的扩展。因为我们知道,Date 类只提供了若干获取日期元素的方法,如 getDate(),getMinute()……却没有一个转换为特定字符串的格式化方法。故所以,...

    AppBaseJs 类库 网上常用的javascript函数及其他js类库写的

    代码如下:/*———————————– Web Application JavaScript Library 2009.11 janchie ————————————*/ //String原生对象扩展 置空左右端空格 String.prototype.trim = function(){ return this....

    JavaScript 5th

    ECMA 2009年12月推出了 JavaScript 5,除了增强基础函数库之外,还引入了严格运行时模式(Strict Runtime Modes)以避免代码中的常见错误。 严格模式 严格模式可用以下语句声明: "use strict;"该语句对以往的...

    JavaScript中文参考手册

    本书是 JavaScript 语言的参考手册,包括核心语言中的对象和客户端、服务器端的扩展。JavaScript 是 Netscape 跨平台的基于对象的适合于客户和服务器的脚本语言。 本书已经更新于 JavaScript 1.2 的新特性,其它...

    superdate:使用方便的方法扩展 Date.prototype

    最初它用于扩展 Date.prototype 对象,现在重构为具有相同的功能,而且是 100% 功能性的,仅使用纯函数。 使用 superdate 代替上面将日期更改几天的代码,您只需调用addDate方法: var newDate = superdate . ...

    利用jquery扩展的验证工具库

    formatDate: 定义一个javascript日期对象(Date)的格式化函数 getByteCount: 取一个字符串所占用的字节数,英文字母占一个字节,非英文则占两个字节 makeBookmark: 把当前网页加入到浏览器的收藏夹中 $.brady....

    de.js 1.6( 含chm帮助)

    轻量级的javascript扩展函数库,某些场景下可替代jquery。更贴近原生方法的编程习惯;支持类似XPath的选择器;扩展了Date类型,处理时间类型更方便等等。

    date-fns-jalali:贾拉利日历的现代JavaScript日期实用程序库

    date-fns-jalali提供最全面,最简单且一致的工具集用于在浏览器和Node.js中操纵JavaScript日期。 贾拉利日历 | 就像的约会 它具有。 模块化:选择您需要的东西。 适用于webpack,Browserify或汇总,还支持树状...

Global site tag (gtag.js) - Google Analytics