File tree Expand file tree Collapse file tree 2 files changed +22
-6
lines changed Expand file tree Collapse file tree 2 files changed +22
-6
lines changed Original file line number Diff line number Diff line change @@ -2,6 +2,16 @@ var TestUtils = require('./test-utils')
2
2
, timezoneJS = TestUtils . getTimezoneJS ( ) ;
3
3
4
4
describe ( 'timezoneJS.Date' , function ( ) {
5
+ it ( 'should correctly trim dates when date exceeds format length' , function ( ) {
6
+ var date = new timezoneJS . Date ( 2011 , 10 , 22 ) ;
7
+ expect ( date . toString ( 'yy-MM-dd' ) ) . toEqual ( '11-11-22' )
8
+ } ) ;
9
+
10
+ it ( 'should correctly pad dates when date is shorter than the format length' , function ( ) {
11
+ var date = new timezoneJS . Date ( 2011 , 3 , 2 ) ;
12
+ expect ( date . toString ( 'yyyy-MM-dd' ) ) . toEqual ( '2011-04-02' )
13
+ } ) ;
14
+
5
15
it ( 'should have correct format when initialized' , function ( ) {
6
16
var date = new timezoneJS . Date ( ) ;
7
17
expect ( date . toString ( ) ) . toMatch ( / [ \d ] { 4 } ( - [ \d ] { 2 } ) { 2 } ( [ \d ] { 2 } : ) { 2 } [ \d ] { 2 } / ) ;
Original file line number Diff line number Diff line change 114
114
//
115
115
// `_fixWidth(2, 2) = '02'`
116
116
//
117
- // `_fixWidth(1998, 2) = '98'`
117
+ // `_fixWidth(1998, 2) = '98'` // year, shorten it to the 2 digit representation
118
+ //
119
+ // `_fixWidth(23, 1) = '23'` // hour, even with 1 digit specified, do not trim
118
120
//
119
121
// This is used to pad numbers in converting date to string in ISO standard.
120
122
var _fixWidth = function ( number , digits ) {
121
123
if ( typeof number !== "number" ) { throw "not a number: " + number ; }
124
+ var trim = ( number > 1000 ) ; // only trim 'year', as the others don't make sense why anyone would want that
122
125
var s = number . toString ( ) ;
123
- if ( number . length > digits ) {
124
- return number . substr ( number . length - digits , number . length ) ;
126
+ var s_len = s . length ;
127
+ if ( trim && s_len > digits ) {
128
+ return s . substr ( s_len - digits , s_len ) ;
125
129
}
126
- while ( s . length < digits ) {
127
- s = '0' + s ;
130
+ s = [ s ] ;
131
+ while ( s_len < digits ) {
132
+ s . unshift ( '0' ) ;
133
+ s_len ++ ;
128
134
}
129
- return s ;
135
+ return s . join ( '' ) ;
130
136
} ;
131
137
132
138
// Abstraction layer for different transport layers, including fleegix/jQuery/Zepto
You can’t perform that action at this time.
0 commit comments