`

javascript Date时间操作

 
阅读更多
DateUtils.js
Date.prototype.pattern = function(A) {
	var D = {
		"M+" : this.getMonth() + 1,
		"d+" : this.getDate(),
		"h+" : this.getHours() % 12 == 0 ? 12 : this.getHours() % 12,
		"H+" : this.getHours(),
		"m+" : this.getMinutes(),
		"s+" : this.getSeconds(),
		"q+" : Math.floor((this.getMonth() + 3) / 3),
		"S" : this.getMilliseconds()
	};
	var B = {
		"0" : "/u65e5",
		"1" : "/u4e00",
		"2" : "/u4e8c",
		"3" : "/u4e09",
		"4" : "/u56db",
		"5" : "/u4e94",
		"6" : "/u516d"
	};
	if (/(y+)/.test(A)) {
		A = A.replace(RegExp.$1, (this.getFullYear() + "")
				.substr(4 - RegExp.$1.length))
	}
	if (/(E+)/.test(A)) {
		A = A
				.replace(
						RegExp.$1,
						((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "/u661f/u671f"
								: "/u5468")
								: "")
								+ B[this.getDay() + ""])
	}
	for ( var C in D) {
		if (new RegExp("(" + C + ")").test(A)) {
			A = A.replace(RegExp.$1, (RegExp.$1.length == 1) ? (D[C])
					: (("00" + D[C]).substr(("" + D[C]).length)))
		}
	}
	return A
};
Date.prototype.isLeapYear = function() {
	return (0 == this.getYear() % 4 && ((this.getYear() % 100 != 0) || (this
			.getYear() % 400 == 0)))
};
Date.prototype.Format = function(C) {
	var B = C;
	var A = ['日','一','二','三','四','五','六'];
	B = B.replace(/yyyy|YYYY/, this.getFullYear());
	B = B.replace(/yy|YY/, (this.getYear() % 100) > 9 ? (this.getYear() % 100)
			.toString() : "0" + (this.getYear() % 100));
	B = B.replace(/MM/, this.getMonth() > 9 ? this.getMonth().toString() : "0"
			+ this.getMonth());
	B = B.replace(/M/g, this.getMonth());
	B = B.replace(/w|W/g, A[this.getDay()]);
	B = B.replace(/dd|DD/, this.getDate() > 9 ? this.getDate().toString() : "0"
			+ this.getDate());
	B = B.replace(/d|D/g, this.getDate());
	B = B.replace(/hh|HH/, this.getHours() > 9 ? this.getHours().toString()
			: "0" + this.getHours());
	B = B.replace(/h|H/g, this.getHours());
	B = B.replace(/mm/, this.getMinutes() > 9 ? this.getMinutes().toString()
			: "0" + this.getMinutes());
	B = B.replace(/m/g, this.getMinutes());
	B = B.replace(/ss|SS/, this.getSeconds() > 9 ? this.getSeconds().toString()
			: "0" + this.getSeconds());
	B = B.replace(/s|S/g, this.getSeconds());
	return B
};
function daysBetween(A, I) {
	var B = A.substring(5, A.lastIndexOf("-"));
	var F = A.substring(A.length, A.lastIndexOf("-") + 1);
	var C = A.substring(0, A.indexOf("-"));
	var D = I.substring(5, I.lastIndexOf("-"));
	var G = I.substring(I.length, I.lastIndexOf("-") + 1);
	var E = I.substring(0, I.indexOf("-"));
	var H = ((Date.parse(B + "/" + F + "/" + C) - Date.parse(D + "/" + G + "/"
			+ E)) / 86400000);
	return Math.abs(H)
}
Date.prototype.DateAdd = function(A, B) {
	var C = this;
	switch (A) {
	case "s":
		return new Date(C.getTime() + (1000 * B));
	case "n":
		return new Date(C.getTime() + (60000 * B));
	case "h":
		return new Date(C.getTime() + (3600000 * B));
	case "d":
		return new Date(C.getTime() + (86400000 * B));
	case "w":
		return new Date(C.getTime() + ((86400000 * 7) * B));
	case "q":
		return new Date(C.getFullYear(), (C.getMonth()) + B * 3, C.getDate(), C
				.getHours(), C.getMinutes(), C.getSeconds());
	case "m":
		return new Date(C.getFullYear(), (C.getMonth()) + B, C.getDate(), C
				.getHours(), C.getMinutes(), C.getSeconds());
	case "y":
		return new Date((C.getFullYear() + B), C.getMonth(), C.getDate(), C
				.getHours(), C.getMinutes(), C.getSeconds())
	}
};
Date.prototype.DateDiff = function(A, B) {
	var C = this;
	if (typeof B == "string") {
		B = StringToDate(B)
	}
	switch (A) {
	case "s":
		return parseInt((B - C) / 1000);
	case "n":
		return parseInt((B - C) / 60000);
	case "h":
		return parseInt((B - C) / 3600000);
	case "d":
		return parseInt((B - C) / 86400000);
	case "w":
		return parseInt((B - C) / (86400000 * 7));
	case "m":
		return (B.getMonth() + 1) + ((B.getFullYear() - C.getFullYear()) * 12)
				- (C.getMonth() + 1);
	case "y":
		return B.getFullYear() - C.getFullYear()
	}
};
function StringToDate(C) {
	var A = Date.parse(C);
	var B = new Date(A);
	if (isNaN(B)) {
		var D = C.split("-");
		B = new Date(D[0], --D[1], D[2])
	}
	return B
}
function DateAdd(C, A, B) {
	switch (A) {
	case "s":
		return new Date(C.getTime() + (1000 * B));
	case "n":
		return new Date(C.getTime() + (60000 * B));
	case "h":
		return new Date(C.getTime() + (3600000 * B));
	case "d":
		return new Date(C.getTime() + (86400000 * B));
	case "w":
		return new Date(C.getTime() + ((86400000 * 7) * B));
	case "q":
		return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + B * 3, dtTmp
				.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp
				.getSeconds());
	case "m":
		return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + B, dtTmp
				.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp
				.getSeconds());
	case "y":
		return new Date((dtTmp.getFullYear() + B), dtTmp.getMonth(), dtTmp
				.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp
				.getSeconds())
	}
}
function DateDiff(A, C, B) {
	if (typeof B == "string") {
		B = StringToDate(B)
	}
	switch (A) {
	case "s":
		return parseInt((B - C) / 1000);
	case "n":
		return parseInt((B - C) / 60000);
	case "h":
		return parseInt((B - C) / 3600000);
	case "d":
		return parseInt((B - C) / 86400000);
	case "w":
		return parseInt((B - C) / (86400000 * 7));
	case "m":
		return (B.getMonth() + 1) + ((B.getFullYear() - C.getFullYear()) * 12)
				- (C.getMonth() + 1);
	case "y":
		return B.getFullYear() - C.getFullYear()
	}
}
Date.prototype.toString = function(B) {
	var A = this;
	var D = A.toLocaleDateString();
	if (B) {
		var C = ['日','一','二','三','四','五','六'];
		D += " 星期" + C[A.getDay()]
	}
	return D
};
function CheckDateTime(C) {
	var B = /^(\d+)-(\d{ 1,2 })-(\d{ 1,2 }) (\d{ 1,2 }):(\d{ 1,2 }):(\d{ 1,2 })$/;
	var A = C.match(B);
	if (A == null) {
		return false
	}
	A[2] = A[2] - 1;
	var D = new Date(A[1], A[2], A[3], A[4], A[5], A[6]);
	if (D.getFullYear() != A[1]) {
		return false
	}
	if (D.getMonth() != A[2]) {
		return false
	}
	if (D.getDate() != A[3]) {
		return false
	}
	if (D.getHours() != A[4]) {
		return false
	}
	if (D.getMinutes() != A[5]) {
		return false
	}
	if (D.getSeconds() != A[6]) {
		return false
	}
	return true
}
Date.prototype.toArray = function() {
	var A = this;
	var B = Array();
	B[0] = A.getFullYear();
	B[1] = A.getMonth();
	B[2] = A.getDate();
	B[3] = A.getHours();
	B[4] = A.getMinutes();
	B[5] = A.getSeconds();
	return B
};
Date.prototype.DatePart = function(C) {
	var A = this;
	var D = "";
	var B = ['日','一','二','三','四','五','六'];
	switch (C) {
	case "y":
		D = A.getFullYear();
		break;
	case "m":
		D = A.getMonth() + 1;
		break;
	case "d":
		D = A.getDate();
		break;
	case "w":
		D = B[A.getDay()];
		break;
	case "ww":
		D = A.WeekNumOfYear();
		break;
	case "h":
		D = A.getHours();
		break;
	case "n":
		D = A.getMinutes();
		break;
	case "s":
		D = A.getSeconds();
		break
	}
	return D
};
Date.prototype.MaxDayOfDate = function() {
	var C = this;
	var B = C.toArray();
	var E = (new Date(B[0], B[1] + 1, 1));
	var D = E.DateAdd(1, "m", 1);
	var A = DateDiff(E.Format("yyyy-MM-dd"), D.Format("yyyy-MM-dd"));
	return A
};
function StringToDate(C) {
	var A = Date.parse(C);
	var B = new Date(A);
	if (isNaN(B)) {
		var D = C.split("-");
		B = new Date(D[0], --D[1], D[2])
	}
	return B
}
function DateCompare(C, A) {
	var B = Date.parse(C) - Date.parse(A);
	if (B == 0) {
		return 0
	} else {
		if (B < 0) {
			return 1
		} else {
			if (B > 0) {
				return -1
			}
		}
	}
}
function isDate(A) {
	if (A.trim() == "") {
		return true
	}
	var C = A.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
	if (C == null) {
		return false
	}
	var B = new Date(C[1], C[3] - 1, C[4]);
	var D = (B.getFullYear() == C[1] && (B.getMonth() + 1) == C[3] && B
			.getDate() == C[4]);
	if (D == 0) {
		return false
	}
	return (D != 0)
};


使用时导入相应页面

var date = new Date();
			//后退一天
			alert(date.DateAdd('d',-1).pattern('yyyy-MM-dd'));
			//得到两个日期之间的天数
			alert(daysBetween('2014-10-11','2014-10-19'));
			//字符串转日期 
			alert(StringToDate('2014-10-11'));
			//比较时间前后
			alert(DateCompare('2014-10-11','2014-10-11'));
			
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    javascript date类型转成OLE(double)

    Date对象的方法提供了对日期和时间的多种操作,包括设置和获取年份、月份、日期、小时、分钟、秒等。 **2. OLE DATE类型** OLE DATE类型是一种用于表示日期时间的标准格式,主要用于COM组件之间以及COM组件与非COM...

    Javascript Date Selector1

    总的来说,JavaScript Date Selector1是一个提高用户体验的实用工具,它结合了JavaScript的Date对象和DOM操作,创建了一个交互式的日期选择界面。通过学习和理解这个控件的工作原理,开发者可以为自己的项目构建更...

    javascript 日期时间控件

    `Date`对象允许开发者创建表示特定日期和时间的实例,并提供了多种方法来操作和格式化这些日期。例如: 1. **创建日期对象**:你可以通过传递日期参数(如年、月、日、小时、分钟等)来创建一个`Date`对象,或者不...

    时间日期JavaScript 选择时间日期

    JavaScript提供了一个内置的`Date`对象,可以用来创建、操作和格式化日期。你可以通过`new Date()`来创建一个日期实例,或者通过传递年、月、日等参数来初始化特定日期。`Date`对象提供了丰富的API,如`getFullYear...

    JavaScript Date对象详解

    JavaScript中的Date对象是一个内置对象,用于处理日期和时间。它提供了各种方法来创建日期对象、获取和设置日期和时间的各个部分、执行日期时间计算以及格式化日期时间等操作。接下来,我们将详细探讨JavaScript ...

    Unobtrusive JavaScript date-picker widgit汉化版

    5. **日期处理**:JavaScript中的`Date`对象是处理日期和时间的核心,用于解析、格式化和比较日期。 6. **国际化与本地化**:对于汉化版,需要确保日期格式(如年月日的顺序)、星期的显示以及月份的名称都符合中文...

    跟我学习javascript的Date对象

    值得注意的是,Date对象没有内置的属性,所有的日期和时间操作都需要通过其提供的方法来进行。 2. Date构造函数 - `new Date()`:创建一个表示当前本地日期和时间的Date对象。例如: ```javascript var dt = new...

    用javascript写选择日期时间的例子

    综上所述,JavaScript处理日期和时间涉及很多方面,包括创建和操作Date对象、格式化日期、响应用户选择、处理时区、进行日期计算以及与服务器的交互。理解并熟练掌握这些概念和技术对于任何JavaScript开发者来说都是...

    javascript写的时间,直接引用即可

    JavaScript提供了一系列内置的函数和对象,使得开发者能够方便地操作和显示时间。在本文中,我们将深入探讨JavaScript中的时间处理,以及如何直接引用相关代码来实现各种时间功能。 ### JavaScript中的Date对象 在...

    javascript的date转化器

    JavaScript的Date对象是处理日期和时间的核心工具,它在Web开发中扮演着重要角色。这个“javascript的date转化器”可能是一个自定义的库或函数集合,旨在简化和扩展JavaScript内置Date对象的功能,以满足更复杂的...

    js日期时间控件 JavaScriptjs日期时间控件 jsp

    在JavaScript中,处理日期和时间的核心对象是`Date`。本篇将深入探讨JavaScript日期时间控件的实现原理、使用方法以及与JSP(JavaServer Pages)的结合应用。 1. **JavaScript `Date` 对象** - `Date`对象是...

    javascript时间计算

    - [JavaScript日期操作教程](https://www.runoob.com/js/js-date.html) 通过上述解析,我们可以看到JavaScript提供了非常灵活的方式来处理日期与时间,只要理解了基本原理,就能轻松应对各种复杂的日期时间计算需求...

    JavaScript Date()日期函数详解

    ### JavaScript Date() ...总结来说,`Date()` 函数在JavaScript中是非常强大的工具,它提供了一系列方法来获取、设置以及操作日期和时间。开发者可以根据具体需求灵活运用这些方法,实现各种日期和时间相关的功能。

    JavaScript中的Date对象

    JavaScript中的Date对象是用于处理日期和时间的核心构造函数,提供了丰富的功能来创建、操作和格式化日期。在JavaScript中,Date对象的方法分为两种主要类型:本地时间和UTC(通用协调时)时间。本地时间指的是根据...

    javascript的时间拾取器

    3. **日期和时间对象**:JavaScript内置了`Date`对象,可以用来创建、操作和格式化日期和时间。时间拾取器通常会用到`Date.now()`获取当前时间,`setHours`、`setMinutes`等方法设置时间,以及`toLocaleString`或`...

    使用javascript实时显示系统当前时间

    在JavaScript中,`Date()`对象是获取和操作日期与时间的核心工具。通过创建`Date()`对象的实例,我们可以获取当前系统的日期和时间。以下是如何使用`Date()`对象获取系统当前时间的关键步骤: 1. **创建`Date()`...

    Date Object in Javascript.zip

    JavaScript中的Date对象还支持时间差计算,通过`getTime()`方法获取日期对象表示的毫秒数,然后用减法操作可以得到两个日期之间的差值。例如: ```javascript var date1 = new Date("2022-01-01"); var date2 = new ...

    JavaScript时间日期操作实例小结【5个示例】

    在这个实例小结中,我们将探讨5个JavaScript日期时间操作的例子,帮助理解如何在JavaScript中处理日期和时间。 1. 指定位置的时钟显示 这个例子创建了一个始终位于网页中间的12小时制时钟。通过`Date`对象获取当前...

    javascript中Date对象的使用总结.docx

    JavaScript 的 `Date` 对象用于处理日期和时间。本文档详细介绍了 `Date` 对象的基本使用方法及其提供的多种实用功能,帮助开发者更好地理解和应用这一核心对象。 #### JSON日期转JS日期 在实际开发过程中,我们...

    javascript中对Date类型的常用操作小结_.docx

    JavaScript 提供了内置的 `Date` 对象来帮助开发者进行日期与时间的操作。本文将详细介绍一些针对 `Date` 类型的常用操作技巧,并通过具体的示例来加深理解。 #### 二、核心知识点 ##### 2.1 日期合法性验证 - **...

Global site tag (gtag.js) - Google Analytics