对js中的Date扩展,格式化日期

/**
 * 对Date的扩展,将 Date 转化为指定格式的String 月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q)
 * 可以用 1-2 个占位符 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) eg: (new
 * Date()).format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 (new
 * Date()).format("yyyy-MM-dd E HH:mm:ss") ==> 2009-03-10 二 20:09:04 (new
 * Date()).format("yyyy-MM-dd EE hh:mm:ss") ==> 2009-03-10 周二 08:09:04 (new
 * Date()).format("yyyy-MM-dd EEE hh:mm:ss") ==> 2009-03-10 星期二 08:09:04 (new
 * Date()).format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
 */
Date.prototype.format = function(fmt) {
	var o = {
		"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 week = {
		"0" : "/u65e5",
		"1" : "/u4e00",
		"2" : "/u4e8c",
		"3" : "/u4e09",
		"4" : "/u56db",
		"5" : "/u4e94",
		"6" : "/u516d"
	};
	if (/(y+)/.test(fmt)) {
		fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "")
				.substr(4 - RegExp.$1.length));
	}
	if (/(E+)/.test(fmt)) {
		fmt = fmt
				.replace(
						RegExp.$1,
						((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "/u661f/u671f"
								: "/u5468")
								: "")
								+ week[this.getDay() + ""]);
	}
	for ( var k in o) {
		if (new RegExp("(" + k + ")").test(fmt)) {
			fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k])
					: (("00" + o[k]).substr(("" + o[k]).length)));
		}
	}
	return fmt;
};

  

时间: 2024-10-17 02:14:38

对js中的Date扩展,格式化日期的相关文章

js中关于date()的扩展

做前端往往会碰到后台传过来的date数据不是需求所需要的样式,后台往往传timestamp类型的,传过来的值为“Mar 30, 2016 10:00:36 AM”格式的,可是页面需要显示“年-月-日”或者“年.月.日”或者“年-月-日 时:分:秒”,需求不同,展示效果不同. 所以,碰到这种情况,就需要我们前端每次在js中转换,除了一些前端框架自带的format方法,(比如说miniUI),我们也可自己对date进行扩展,下面是总结的date数据的扩展,亲测,看代码: /* 关于时间类型的扩展 *

熟用js中的Date

js中的Date类型是使用UTC(国际协调时间)自1970年1月1日午夜(零时)开始,经过的毫秒数来保存日期. 1. 创建日期对象  ---> 获得当前日期和时间  var now = new Date(); --->基于制定的日期和时间创建  var date = new Date(year,month,day,hour,minute,second); 需要注意的就是,Date.prototype中的方法都是基于UTC时间的,所以这些方法中month(0-11).day(1-31).星期几(

js中转换Date日期格式

在javascript中直接输出Date得到的结果是这样的: function date(){ var date = new Date(); alert(date); } 结果是:Mon Jun 15 15:30:46 UTC+0800 2009 这可能不是我们所需要的,因此是需要转换下的,这里就学下我转换的几种方法,不妥之处请指教: 1.得到new Date()型中各个时间级别(年.月.日.时.分.秒)的数: function date(){ var date = new Date(); va

js中 new Date()使用说明

1 var myDate = new Date(); 2 // myDate.getYear(); //获取当前年份(2位) 3 // myDate.getFullYear(); //获取完整的年份(4位,1970-????) 4 // myDate.getMonth(); //获取当前月份(0-11,0代表1月) 5 // myDate.getDate(); //获取当前日(1-31) 6 // myDate.getDay(); //获取当前星期X(0-6,0代表星期天) 7 // myDat

js中使用prototype扩展对象方法

//---------------------对象 //1. var HomeContrl = function(){ this.foo = 'bar'; //对象方法 this.intro = function(){ alert(this.foo); } } //原型方法,扩展原来对象的方法 HomeContrl.prototype.printr = function() { alert(this.foo); } var obj = new HomeContrl(); var obj2 = n

js中字符串转换为日期和比较大小

本文转载于:http://yun342173024.iteye.com/blog/1873756在做前端校验的时候,要做日期比较的校验,在js中把字符串转化为日期,一时之间还真不知道在js中怎么把一个字符串格式的日期转化为Date,查看了一些资料,在此分享下. 下面以调用js中Date(year,month,day)来生成一个日期对象.  1.把字符串格式转换为日期的函数,函数接受两个参数,dateStr字符串日期格式,  separator日期格式分隔符,默认是-.,这里没有对字符串的日期格式

js 将php生成的time()类型时间戳转化成具体date格式的日期

需求: 将首页显示的int类型的时间转化为date类型的时间格式: QuestionModel获取到question列表数据时,包括question['pub_time'],在显示时,需要将其转化为具体的时间格式进行显示. 插入问题记录时,pub_time字段是使用php的time()函数,获取到当前的时间戳整数,然后插入到mysql数据表中的,所以其格式是int类型. 但在view视图的html中显示时,需要将其格式化成时间格式进行显示.但又因为每一条问题为了便于分页显示数据都是通过js拼接的

JavaScript中的Date类型详解与moment简介

关于JavaScript中的Date类型,相信JSer们都不会陌生吧,但是也必然为那个复杂难记的各种转换函数所头疼,本文将分享一下我对JS中的Date类型的一些知识小总结,并把其中容易犯错的地方指出来,同时简介和推广moment.js这个js库,希望大家看完文章后以后在对Date类处理如鱼得水. 1 时间的唯一性与多样性 某一时刻在全世界任何地区应该是唯一的,时区的不同是为了让地球不同时区的人的中午十二点都是太阳正上当头,形成交流上没有那么多障碍.而这一标准就是大家熟知的格林威治标准时间(Gre

JS中如何将字符串转化成日期 日期格式化方法

<!--     /**     * 对Date的扩展,将 Date 转化为指定格式的String     * 月(M).日(d).12小时(h).24小时(H).分(m).秒(s).周(E).季度(q) 可以用 1-2 个占位符     * 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)     * eg:     * (new Date()).pattern("yyyy-MM-dd hh:mm:ss.S") ==> 2006-0