针对自己在日常用到的一些日期方法,整理成一个js日期插件,插件定义了一个dates全局对象,继承了Date函数,相当于在Date函数上做了一些扩展。
这个插件会不断更新,所有我之后用到的关于日期的自定义方法都会放到这个插件。
1 /** 2 * 功能描述:针对JS自身的Date对象做了一些更符合使用习惯的扩充和改进 3 * 4 */ 5 /* 6 * 继承Date 7 */ 8 var dates = new Date(); //Object.create(Date); 9 /* 10 * 改进Date对象提供的getMonth方法 11 */ 12 dates.getMonth = function(){ 13 let a = new Date(); 14 return a.getMonth() + 1; 15 } 16 /* 17 * 返回年月日 18 * @tag:设置分隔符,如果不设置,默认使用"-" 19 */ 20 dates.getYMD = function(tag){ 21 var tag = (tag === null || tag === undefined || tag === ""?"-":tag); 22 tag = new String(tag); 23 var ymd = 24 dates.getFullYear() + tag + 25 dates.getMonth() + tag + 26 dates.getDate(); 27 return ymd; 28 } 29 /* 30 * 返回时分秒 31 * @tag:设置分隔符,如果不设置,默认使用":" 32 */ 33 dates.getHMS = function(tag){ 34 var tag = (tag === null || tag === undefined || tag === ""?":":tag); 35 tag = new String(tag); 36 var hms = 37 dates.getHours() + tag + 38 dates.getMinutes() + tag + 39 dates.getSeconds(); 40 return hms; 41 } 42 /* 43 * 返回年月日时分秒 44 */ 45 dates.getFullTime = function(){ 46 switch (arguments.length){ //完整的包括三个参数,年月日直接的分隔符,时分秒直接的分隔符,年月日和时分秒之间的分隔符 47 case 0: 48 //使用默认形式 49 return dates.getYMD() + " " + dates.getHMS(); 50 break; 51 case 1: 52 //一个参数是全部使用该分隔符 53 return dates.getYMD(arguments[0]) + arguments[0] + dates.getHMS(arguments[0]); 54 break; 55 case 2: 56 //两个参数是仅设置年月日和时分秒的分隔符 57 return dates.getYMD(arguments[0]) + " " + dates.getHMS(arguments[1]); 58 break; 59 case 3: 60 //三个参数是设置完整参数 61 return dates.getYMD(arguments[0]) + arguments[1] + dates.getHMS(arguments[2]); 62 break; 63 default: 64 return dates.getYMD(arguments[0]) + arguments[1] + dates.getHMS(arguments[2]); 65 break; 66 } 67 } 68 /* 69 * 返回12小时制的时间 70 */ 71 dates.get12Hour = function(){ 72 return (dates.getHours() < 12?dates.getHours():dates.getHours()-12); 73 } 74 /* 75 * 返回以当前日期为准,明天的日期 76 */ 77 dates.getTomorrow = function(tag){ 78 var tag = (tag === null || tag === undefined || tag === ""?"-":tag); 79 tag = new String(tag); 80 tomo = dates.getDate() + 1; 81 var ymd = 82 dates.getFullYear() + tag + 83 dates.getMonth() + tag + 84 tomo; 85 return ymd; 86 }
这其中有个问题,就是特殊字符,以字符的形式输入特殊字符没问题,但如果直接把特殊字符(如@#¥%&*等)作为参数传入就会报错,不太知道如何保证使用简便的前提下处理这个问题。