nyc-bookstores/node_modules/filed/rfc822.js
2013-05-27 13:45:59 -07:00

48 lines
1.3 KiB
JavaScript

// Support for rfc822, worst standard EVAR!
// require('./date')
function getRFC822Date(oDate)
{
var aMonths = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
var aDays = new Array( "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
var dtm = new String();
dtm = aDays[oDate.getDay()] + ", ";
dtm += padWithZero(oDate.getDate()) + " ";
dtm += aMonths[oDate.getMonth()] + " ";
dtm += oDate.getFullYear() + " ";
dtm += padWithZero(oDate.getHours()) + ":";
dtm += padWithZero(oDate.getMinutes()) + ":";
dtm += padWithZero(oDate.getSeconds()) + " " ;
dtm += getTZOString(oDate.getTimezoneOffset());
return dtm;
}
//Pads numbers with a preceding 0 if the number is less than 10.
function padWithZero(val)
{
if (parseInt(val) < 10)
{
return "0" + val;
}
return val;
}
/* accepts the client's time zone offset from GMT in minutes as a parameter.
returns the timezone offset in the format [+|-}DDDD */
function getTZOString(timezoneOffset)
{
var hours = Math.floor(timezoneOffset/60);
var modMin = Math.abs(timezoneOffset%60);
var s = new String();
s += (hours > 0) ? "-" : "+";
var absHours = Math.abs(hours)
s += (absHours < 10) ? "0" + absHours :absHours;
s += ((modMin == 0) ? "00" : modMin);
return(s);
}
exports.getRFC822Date = getRFC822Date;