@ -21,9 +21,9 @@ function addZero(vNumber) {
* Thanks to http : //www.svendtofte.com/code/date_format/
* @ private
* /
function offset ( da te) {
function offset ( tim ezoneOffset ) {
// Difference to Greenwich time (GMT) in hours
var os = Math . abs ( da te. getT imezoneOffset( ) ) ;
var os = Math . abs ( timezoneOffset) ;
var h = String ( Math . floor ( os / 60 ) ) ;
var m = String ( os % 60 ) ;
if ( h . length == 1 ) {
@ -32,26 +32,31 @@ function offset(date) {
if ( m . length == 1 ) {
m = "0" + m ;
}
return da te. getT imezoneOffset( ) < 0 ? "+" + h + m : "-" + h + m ;
return timezoneOffset < 0 ? "+" + h + m : "-" + h + m ;
}
exports . asString = function ( /*format,*/ date ) {
exports . asString = function ( /*format,*/ date , timezoneOffset ) {
var format = exports . ISO8601 _FORMAT ;
if ( typeof ( date ) === "string" ) {
format = arguments [ 0 ] ;
date = arguments [ 1 ] ;
timezoneOffset = arguments [ 2 ] ;
}
var vDay = addZero ( date . getDate ( ) ) ;
var vMonth = addZero ( date . getMonth ( ) + 1 ) ;
var vYearLong = addZero ( date . getFullYear ( ) ) ;
var vYearShort = addZero ( date . getFullYear ( ) . toString ( ) . substring ( 2 , 4 ) ) ;
// make the date independent of the system timezone by working with UTC
if ( timezoneOffset === undefined ) {
timezoneOffset = date . getTimezoneOffset ( ) ;
}
date . setUTCMinutes ( date . getUTCMinutes ( ) - timezoneOffset ) ;
var vDay = addZero ( date . getUTCDate ( ) ) ;
var vMonth = addZero ( date . getUTCMonth ( ) + 1 ) ;
var vYearLong = addZero ( date . getUTCFullYear ( ) ) ;
var vYearShort = addZero ( date . getUTCFullYear ( ) . toString ( ) . substring ( 2 , 4 ) ) ;
var vYear = ( format . indexOf ( "yyyy" ) > - 1 ? vYearLong : vYearShort ) ;
var vHour = addZero ( date . getHours ( ) ) ;
var vMinute = addZero ( date . getMinutes ( ) ) ;
var vSecond = addZero ( date . getSeconds ( ) ) ;
var vMillisecond = padWithZeros ( date . get Milliseconds( ) , 3 ) ;
var vTimeZone = offset ( da te) ;
var vHour = addZero ( date . get UTC Hours( ) ) ;
var vMinute = addZero ( date . get UTC Minutes( ) ) ;
var vSecond = addZero ( date . get UTC Seconds( ) ) ;
var vMillisecond = padWithZeros ( date . get UTC Milliseconds( ) , 3 ) ;
var vTimeZone = offset ( tim ezoneOffset ) ;
var formatted = format
. replace ( /dd/g , vDay )
. replace ( /MM/g , vMonth )