@@ -168,31 +168,53 @@ function dateGetter(name, size, offset, trim) {
168
168
} ;
169
169
}
170
170
171
+ function dateStrGetter ( name , shortForm ) {
172
+ return function ( date ) {
173
+ var value = date [ 'get' + name ] ( ) ;
174
+
175
+ if ( name == 'Month' ) {
176
+ value = MONTH [ value ] ;
177
+ } else {
178
+ value = DAY [ value ] ;
179
+ }
180
+
181
+ return shortForm ? value . substr ( 0 , 3 ) : value ;
182
+ } ;
183
+ }
184
+
185
+ var DAY = 'Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday' . split ( ',' ) ;
186
+
187
+ var MONTH = 'January,February,March,April,May,June,July,August,September,October,November,December' .
188
+ split ( ',' ) ;
171
189
172
190
var DATE_FORMATS = {
173
191
yyyy : dateGetter ( 'FullYear' , 4 ) ,
174
- yy : dateGetter ( 'FullYear' , 2 , 0 , true ) ,
175
- MM : dateGetter ( 'Month' , 2 , 1 ) ,
176
- M : dateGetter ( 'Month' , 1 , 1 ) ,
177
- dd : dateGetter ( 'Date' , 2 ) ,
178
- d : dateGetter ( 'Date' , 1 ) ,
179
- HH : dateGetter ( 'Hours' , 2 ) ,
180
- H : dateGetter ( 'Hours' , 1 ) ,
181
- hh : dateGetter ( 'Hours' , 2 , - 12 ) ,
182
- h : dateGetter ( 'Hours' , 1 , - 12 ) ,
183
- mm : dateGetter ( 'Minutes' , 2 ) ,
184
- m : dateGetter ( 'Minutes' , 1 ) ,
185
- ss : dateGetter ( 'Seconds' , 2 ) ,
186
- s : dateGetter ( 'Seconds' , 1 ) ,
187
- a : function ( date ) { return date . getHours ( ) < 12 ? 'am' : 'pm' ; } ,
188
- Z : function ( date ) {
192
+ yy : dateGetter ( 'FullYear' , 2 , 0 , true ) ,
193
+ MMMMM : dateStrGetter ( 'Month' ) ,
194
+ MMM : dateStrGetter ( 'Month' , true ) ,
195
+ MM : dateGetter ( 'Month' , 2 , 1 ) ,
196
+ M : dateGetter ( 'Month' , 1 , 1 ) ,
197
+ dd : dateGetter ( 'Date' , 2 ) ,
198
+ d : dateGetter ( 'Date' , 1 ) ,
199
+ HH : dateGetter ( 'Hours' , 2 ) ,
200
+ H : dateGetter ( 'Hours' , 1 ) ,
201
+ hh : dateGetter ( 'Hours' , 2 , - 12 ) ,
202
+ h : dateGetter ( 'Hours' , 1 , - 12 ) ,
203
+ mm : dateGetter ( 'Minutes' , 2 ) ,
204
+ m : dateGetter ( 'Minutes' , 1 ) ,
205
+ ss : dateGetter ( 'Seconds' , 2 ) ,
206
+ s : dateGetter ( 'Seconds' , 1 ) ,
207
+ EEEE : dateStrGetter ( 'Day' ) ,
208
+ EEE : dateStrGetter ( 'Day' , true ) ,
209
+ a : function ( date ) { return date . getHours ( ) < 12 ? 'am' : 'pm' ; } ,
210
+ Z : function ( date ) {
189
211
var offset = date . getTimezoneOffset ( ) ;
190
212
return padNumber ( offset / 60 , 2 ) + padNumber ( Math . abs ( offset % 60 ) , 2 ) ;
191
213
}
192
214
} ;
193
215
194
216
195
- var DATE_FORMATS_SPLIT = / ( [ ^ y M d H h m s a Z ] * ) ( y + | M + | d + | H + | h + | m + | s + | a | Z ) ( .* ) / ;
217
+ var DATE_FORMATS_SPLIT = / ( [ ^ y M d H h m s a Z E ] * ) ( E + | y + | M + | d + | H + | h + | m + | s + | a | Z ) ( .* ) / ;
196
218
var NUMBER_STRING = / ^ \d + $ / ;
197
219
198
220
@@ -209,10 +231,14 @@ var NUMBER_STRING = /^\d+$/;
209
231
*
210
232
* * `'yyyy'`: 4 digit representation of year e.g. 2010
211
233
* * `'yy'`: 2 digit representation of year, padded (00-99)
234
+ * * `'MMMMM'`: Month in year (January‒December)
235
+ * * `'MMM'`: Month in year (Jan - Dec)
212
236
* * `'MM'`: Month in year, padded (01‒12)
213
237
* * `'M'`: Month in year (1‒12)
214
238
* * `'dd'`: Day in month, padded (01‒31)
215
239
* * `'d'`: Day in month (1-31)
240
+ * * `'EEEE'`: Day in Week,(Sunday‒Saturday)
241
+ * * `'EEE'`: Day in Week, (Sun-Sat)
216
242
* * `'HH'`: Hour in day, padded (00‒23)
217
243
* * `'H'`: Hour in day (0-23)
218
244
* * `'hh'`: Hour in am/pm, padded (01‒12)
0 commit comments