Fixing parsing of timestamps without timezone in binary mode

This commit is contained in:
Candid Dauth 2013-04-11 01:11:08 +02:00
parent 62800f1db0
commit 3aedebb0b0

View File

@ -141,13 +141,17 @@ var parseNumeric = function(value) {
return ((sign === 0) ? 1 : -1) * Math.round(result * scale) / scale;
};
var parseDate = function(value) {
var parseDate = function(isUTC, value) {
var sign = parseBits(value, 1);
var rawValue = parseBits(value, 63, 1);
// discard usecs and shift from 2000 to 1970
var result = new Date((((sign === 0) ? 1 : -1) * rawValue / 1000) + 946684800000);
if (!isUTC) {
result.setTime(result.getTime() + result.getTimezoneOffset() * 60000);
}
// add microseconds to the date
result.usec = rawValue % 1000;
result.getMicroSeconds = function() {
@ -247,8 +251,8 @@ var init = function(register) {
register(700, parseFloat32);
register(701, parseFloat64);
register(16, parseBool);
register(1114, parseDate);
register(1184, parseDate);
register(1114, parseDate.bind(null, false));
register(1184, parseDate.bind(null, true));
register(1007, parseArray);
register(1016, parseArray);
register(1008, parseArray);