@@ -97,7 +97,12 @@ function pad (number, digits) {
9797
9898function dateToString ( date ) {
9999 var offset = - date . getTimezoneOffset ( )
100- var ret = pad ( date . getFullYear ( ) , 4 ) + '-' +
100+
101+ var year = date . getFullYear ( )
102+ var isBCYear = year < 1
103+ if ( isBCYear ) year = Math . abs ( year ) + 1 // negative years are 1 off their BC representation
104+
105+ var ret = pad ( year , 4 ) + '-' +
101106 pad ( date . getMonth ( ) + 1 , 2 ) + '-' +
102107 pad ( date . getDate ( ) , 2 ) + 'T' +
103108 pad ( date . getHours ( ) , 2 ) + ':' +
@@ -110,19 +115,27 @@ function dateToString (date) {
110115 offset *= - 1
111116 } else { ret += '+' }
112117
113- return ret + pad ( Math . floor ( offset / 60 ) , 2 ) + ':' + pad ( offset % 60 , 2 )
118+ ret += pad ( Math . floor ( offset / 60 ) , 2 ) + ':' + pad ( offset % 60 , 2 )
119+ if ( isBCYear ) ret += ' BC'
120+ return ret
114121}
115122
116123function dateToStringUTC ( date ) {
117- var ret = pad ( date . getUTCFullYear ( ) , 4 ) + '-' +
124+ var year = date . getUTCFullYear ( )
125+ var isBCYear = year < 1
126+ if ( isBCYear ) year = Math . abs ( year ) + 1 // negative years are 1 off their BC representation
127+
128+ var ret = pad ( year , 4 ) + '-' +
118129 pad ( date . getUTCMonth ( ) + 1 , 2 ) + '-' +
119130 pad ( date . getUTCDate ( ) , 2 ) + 'T' +
120131 pad ( date . getUTCHours ( ) , 2 ) + ':' +
121132 pad ( date . getUTCMinutes ( ) , 2 ) + ':' +
122133 pad ( date . getUTCSeconds ( ) , 2 ) + '.' +
123134 pad ( date . getUTCMilliseconds ( ) , 3 )
124135
125- return ret + '+00:00'
136+ ret += '+00:00'
137+ if ( isBCYear ) ret += ' BC'
138+ return ret
126139}
127140
128141function normalizeQueryConfig ( config , values , callback ) {
0 commit comments