@@ -7,18 +7,48 @@ define(Date, {
7
7
} ) ;
8
8
9
9
define ( Date . prototype , {
10
- setTimezone : function ( timezone : string ) {
10
+ setTimezone : function ( this : Date , timezone : string ) {
11
11
return new Date (
12
12
this . toLocaleString ( "en-US" , {
13
13
timeZone : timezone ,
14
14
} )
15
15
) ;
16
16
} ,
17
- isInPast : function ( ) {
17
+ isInPast : function ( this : Date ) {
18
18
const today = new Date ( ) ;
19
19
today . setHours ( 0 , 0 , 0 , 0 ) ;
20
20
return this < today ;
21
21
} ,
22
+ addYear : function ( this : Date , years : number , month : number = 0 , date : number = 0 ) {
23
+ return this . setFullYear ( this . getFullYear ( ) + years , this . getMonth ( ) + month , this . getDate ( ) + date ) ;
24
+ } ,
25
+ addMonth : function ( this : Date , months : number , date : number = 0 ) {
26
+ return this . setMonth ( this . getMonth ( ) + months , this . getDate ( ) + date ) ;
27
+ } ,
28
+ addDate : function ( this : Date , days : number ) {
29
+ return this . setDate ( this . getDate ( ) + days ) ;
30
+ } ,
31
+ addHours : function ( this : Date , hours : number , minutes : number = 0 , seconds : number = 0 , milliseconds : number = 0 ) {
32
+ return this . setHours (
33
+ this . getHours ( ) + hours ,
34
+ this . getMinutes ( ) + minutes ,
35
+ this . getSeconds ( ) + seconds ,
36
+ this . getMilliseconds ( ) + milliseconds
37
+ ) ;
38
+ } ,
39
+ addMinutes : function ( this : Date , minutes : number , seconds : number = 0 , milliseconds : number = 0 ) {
40
+ return this . setMinutes (
41
+ this . getMinutes ( ) + minutes ,
42
+ this . getSeconds ( ) + seconds ,
43
+ this . getMilliseconds ( ) + milliseconds
44
+ ) ;
45
+ } ,
46
+ addSeconds : function ( this : Date , seconds : number , milliseconds : number = 0 ) {
47
+ return this . setSeconds ( this . getSeconds ( ) + seconds , this . getMilliseconds ( ) + milliseconds ) ;
48
+ } ,
49
+ addMilliseconds : function ( this : Date , milliseconds : number ) {
50
+ return this . setMilliseconds ( this . getMilliseconds ( ) + milliseconds ) ;
51
+ } ,
22
52
} ) ;
23
53
24
54
declare global {
@@ -27,7 +57,7 @@ declare global {
27
57
* Returns the current timestamp as its representation in seconds
28
58
* @returns {number } date in seconds
29
59
* @example
30
- * Date.nowSeconds() // 1671621321
60
+ * Date.nowSeconds()
31
61
*/
32
62
nowSeconds ( ) : number ;
33
63
}
@@ -51,6 +81,55 @@ declare global {
51
81
* new Date("2022-12-01").isInPast() // returns: true
52
82
*/
53
83
isInPast ( ) : boolean ;
84
+ /**
85
+ * Add a number of years to the current date
86
+ * @returns {number } timestamp in milliseconds
87
+ * @example
88
+ * new Date().addYear(1)
89
+ */
90
+ addYear ( years : number , month ?: number , date ?: number ) : number ;
91
+ /**
92
+ * Add a number of months to the current date
93
+ * @returns {number } timestamp in milliseconds
94
+ * @example
95
+ * new Date().addMonth(1)
96
+ */
97
+ addMonth ( months : number , date ?: number ) : number ;
98
+ /**
99
+ * Add a number of days to the current date
100
+ * @returns {number } timestamp in milliseconds
101
+ * @example
102
+ * new Date().addDate(1)
103
+ */
104
+ addDate ( days : number ) : number ;
105
+ /**
106
+ * Add a number of hours to the current date
107
+ * @returns {number } timestamp in milliseconds
108
+ * @example
109
+ * new Date().addHours(1)
110
+ */
111
+ addHours ( hours : number , minutes ?: number , seconds ?: number , milliseconds ?: number ) : number ;
112
+ /**
113
+ * Add a number of minutes to the current date
114
+ * @returns {number } timestamp in milliseconds
115
+ * @example
116
+ * new Date().addMinutes(1)
117
+ */
118
+ addMinutes ( minutes : number , seconds ?: number , milliseconds ?: number ) : number ;
119
+ /**
120
+ * Add a number of seconds to the current date
121
+ * @returns {number } timestamp in milliseconds
122
+ * @example
123
+ * new Date().addSeconds(1)
124
+ */
125
+ addSeconds ( seconds : number , milliseconds ?: number ) : number ;
126
+ /**
127
+ * Add a number of milliseconds to the current date
128
+ * @returns {number } timestamp in milliseconds
129
+ * @example
130
+ * new Date().addMilliseconds(1)
131
+ */
132
+ addMilliseconds ( milliseconds : number ) : number ;
54
133
}
55
134
}
56
135
0 commit comments