关于日期的一些常用方法的封装——dates.js

针对自己在日常用到的一些日期方法,整理成一个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 }

这其中有个问题,就是特殊字符,以字符的形式输入特殊字符没问题,但如果直接把特殊字符(如@#¥%&*等)作为参数传入就会报错,不太知道如何保证使用简便的前提下处理这个问题。

原文地址:https://www.cnblogs.com/enjoymylift/p/6023094.html