`
p2world
  • 浏览: 94249 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascript date 时间 简化类

阅读更多
用例:
var iDate=new IDate();
iDate.toString();//y-M-d h:m:s格式输出
iDate.h("+1");//小时加一 
iDate.h("-1");//小时减一 
iDate.h(1);  //设定小时为1
iDate.h("1");//设定小时为1
iDate.h();   //获取小时数
iDate.y(2012).M(4).d(14).h(10).m(0).s(0).ms(0);//链式


类源码:
var IDate=(function(){
var self,//当前操作的IDate实例,实现静态方法、访问控制
	names={//原生Date类与本类方法名对应列表
		y:"FullYear",
		M:"Month",
		d:"Date",
		h:"Hours",
		m:"Minutes",
		s:"Seconds",
		ms:"Milliseconds"
	};
function argParse(k,arg){
	var res;
	if(arguments.length){
		if(typeof arg ==="number"){
			set(k,arg);//内部方法调用,不使用self
			return self;
		}else if(typeof arg ==="string"){
			if(/^[+-]?\d+$/.test(arg)){
				var dir;
				if(arg.charAt(0)==="+"){
					arg=parseInt(arg,10);
					dir=1;
				}else if(arg.charAt(0)==="-"){
					arg=parseInt(arg.slice(1),10);
					dir=-1;
				}
				set(k,arg,dir);
				return self;
			}
		}
	}
	return get(k);
}
function set(k,v,dir){
	var dateName=names[k];
	if(!dir){
		if(k==="M"){
			v--;
		}
		self.date['set'+dateName](v);//访问暴露在外的属性使用self
	}else{
		self.date['set'+dateName](v*dir+self.date["get"+dateName]());
	}
}
function get(k){
	var res=self.date['get'+names[k]]();
	if(k==="M"){
		res++;
	}
	return res;
}

function IDate(date){
	if(arguments.length){
		if(date instanceof IDate){//防止重复实例化,复制使用:new IDate(iDate.t());
			return date;
		}else if(date instanceof Date){
			this.date=date;
		}else{
			this.date=new Date(parseInt(date,10));
		}
	}else{
		this.date=new Date();
	}
}
//批量生成外部使用方法:
var proto={};
for(var name in names){
	proto[name]=(function(name){
		return function(arg){
			self=this;
			return argParse(name,arg);
		};
	}(name));
}
proto.t=function() {
	return this.date.getTime();
};
proto.toString=function() {
	return this.y()+"-"+this.M()+"-"+this.d()+" "+this.h()+":"+this.m()+":"+this.s();
};
IDate.prototype=proto;
return IDate;
}());
分享到:
评论

相关推荐

    JavaScript入门经典(第3版)高清PDF—3

    《JavaScript入门经典(第3版)》主要介绍了在JavaScript 中如何使用对象,如Date对象和String对象,来管理复杂的数据类型,并简化程序的设计。使用表单、窗体和其他控件的技巧。如何发现JavaScript代码中的常见错误和...

    JavaScript入门经典(第3版)高清PDF—5

    《JavaScript入门经典(第3版)》主要介绍了在JavaScript 中如何使用对象,如Date对象和String对象,来管理复杂的数据类型,并简化程序的设计。使用表单、窗体和其他控件的技巧。如何发现JavaScript代码中的常见错误和...

    JavaScript入门经典(第3版)高清PDF—1

    《JavaScript入门经典(第3版)》主要介绍了在JavaScript 中如何使用对象,如Date对象和String对象,来管理复杂的数据类型,并简化程序的设计。使用表单、窗体和其他控件的技巧。如何发现JavaScript代码中的常见错误和...

    JavaScript语言参考手册

    这一章包含了 JavaScript 的核心对象 Array,Boolean,Date,Function,Math,Number,Object 和 String。这些对象同时在客户端和服务器端的 JavaScript 中使用。 Array 属性 方法 Boolean 属性 方法 Date 属性 方法...

    date-io:通用javascript日期管理库的抽象

    通用JavaScript日期管理库上的抽象。 该项目通过 , , 和公开了一个抽象接口。 它允许您构建任何UI日期或时间组件,同时利用用户项目中使用的相同日期管理库。 它简化了时区管理,允许您的代码返回与用户期望的...

    extended-date:JavaScript中“ Date”对象的扩展,以简化与日期相关的常用实现

    延长日期JavaScript中Date对象的扩展,以简化与日期相关的常用实现。

    JavaScript入门经典(第3版)高清—2

    《JavaScript入门经典(第3版)》主要介绍了在JavaScript 中如何使用对象,如Date对象和String对象,来管理复杂的数据类型,并简化程序的设计。使用表单、窗体和其他控件的技巧。如何发现JavaScript代码中的常见错误和...

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

    6.2.4 使用with声明简化表达式 6.2.5 常见属性汇总 6.2.6 常见方法汇总 6.3 Array对象 6.3.1 创建数组并访问其特定位置元素 6.3.2 数组中元素的顺序问题 6.3.3 模拟堆栈和队列操作的方法 6.3.4 使用splice()方法添加...

    Javascript中Date类型和Math类型详解

    ECMASCript中的Date类型是在早期中Java中的java.util.Date类基础上构建的。为此Date类型使用自UTC(国际协调时间)1970年1月1日午夜(0时)开始经过的毫秒数来保存日期。 创建日期对象 1.创建当前日期。不需要传入参数...

    JavaScript入门经典(第3版)高清PDF—4

    《JavaScript入门经典(第3版)》主要介绍了在JavaScript 中如何使用对象,如Date对象和String对象,来管理复杂的数据类型,并简化程序的设计。使用表单、窗体和其他控件的技巧。如何发现JavaScript代码中的常见错误和...

    JavaScript中文参考手册

    这一章包含了 JavaScript 的核心对象 Array,Boolean,Date,Function,Math,Number,Object 和 String。这些对象同时在客户端和服务器端的 JavaScript 中使用。 Array 属性 方法 Boolean 属性 方法 Date ...

    JavaScript基础和实例代码

    JavaScript电子书,包括了JavaScript的大部分知识,可以帮助读者快速入门。内容如下: 第1章 JavaScript语言概述 1.1 JavaScript是什么 1.1.1 JavaScript简史 1.1.2 JavaScript有何特点 1.2 JavaScript能做什么 ...

    JavaScript入门教程(6-8).pdf

    JavaScript 脚本提供...简化 JavaScript 操作的对象(如 Math、Date、RegExp、Function)。其中 RegExp 对象将在“正 则表达式”章节进行详细的叙述,本章从实际应用出发,详细讨论其余的 JavaScript 脚本内 置对象。

    浅析JavaScript 箭头函数 generator Date JSON

    箭头函数相当于匿名函数,并且简化了函数定义。一种像上面的,只包含一个表达式, 连{ … }和return都省略掉了。还有一种可以包含多条语句,这时候就不能省略{ … }和return:  x =>{  if(x > 0){  return x *...

    meteor-xregexp:增强和可扩展JavaScript正则表达式

    XRegExp还是regex实用程序带,其工具可简化客户端grep和解析,同时使您不必担心烦人的跨浏览器不一致以及诸如在标记时手动操作lastIndex或切片字符串之类的事情。 XRegExp使您可以编写如下正则表达式: // Using ...

    ng-date-repeat:Angular 组件,用于为用户提供简化的界面以指定重复事件

    吴日期过滤器Angular 组件,用于为用户提供简化的界面以指定重复事件。 灵感来自谷歌日历重复框组件.i关于由创建 许可证:麻省理工学院

    streamlinejs:用于假人的异步JavaScript

    streamline.js streamline.js是用于简化异步Javascript编程的语言工具。 tldr; 见而不是像这样编写冗长的代码: function archiveOrders ( date , cb ) { db . connect ( function ( err , conn ) { if ( err ) ...

    of时区和偏移量的简化(分组)列表,始终是最新的,包括完整数据-JavaScript开发

    of时区和偏移量的简化(分组)列表,始终是最新的,包括完整的数据tzdb这是清单和npm软件包:“简化的” IANA时区及其偏移量名称,所有现有IANA时区名称和主要城市(人口> 5,000)及其关联的时区和偏移名称只要从...

    jdk1.8windows免安装版本

    4、Date/Time API:Java 8中引入了新的Date/Time API,它提供了一组强大的日期和时间处理工具,包括时区和夏令时的支持。 5、Nashorn引擎:Java 8中引入了一个新的JavaScript引擎,称为Nashorn。它比原来的...

    drupal-date_popup_authored:为节点提交表单上的“创作日期”字段提供 jQuery UI 日期选择器

    注意事项由于 Date Popup Authored 允许您选择比 Drupal 用于 Authored on 字段的默认日期格式更不具体的日期格式,如果您使用更简化的日期格式,它将插入默认数据。 例如,如果您配置的日期格式不包括时间,则保存...

Global site tag (gtag.js) - Google Analytics