From: Jason Etheridge Date: Fri, 28 Jun 2019 20:18:34 +0000 (-0400) Subject: lp1811710: Firefox breaks with timestamps in FormatService X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=1b2d9b44c23658bfcf2678d33f1608979f2ba247;p=working%2FEvergreen.git lp1811710: Firefox breaks with timestamps in FormatService new Date(value) returns Invalid Date, whereas Chrome is more forgiving. Here's some of our own parsing to get around it. Signed-off-by: Jason Etheridge --- diff --git a/Open-ILS/src/eg2/src/app/core/format.service.ts b/Open-ILS/src/eg2/src/app/core/format.service.ts index 63aeec66f0..4632fc10fd 100644 --- a/Open-ILS/src/eg2/src/app/core/format.service.ts +++ b/Open-ILS/src/eg2/src/app/core/format.service.ts @@ -107,7 +107,27 @@ export class FormatService { return org ? org[orgField]() : ''; case 'timestamp': - const date = new Date(value); + var _date; + var pgDate = /^(\d{4})-(\d{2})-(\d{2}).(\d{2}):(\d{2}):(\d{2})\.?(\d{0,3})\d{0,3}([+-]\d{2}):?(\d*)$/; + var m = pgDate.exec(value); + if (m) { + var year = +m[1]; + var month = +m[2]; + var day = +m[3]; + var hour = +m[4]; + var minute = +m[5]; + var second = +m[6]; + var msec = +(m[7] || '000'); + var tzHour = +m[8]; + var tzMin = +(m[9] || '00'); + var tzOffset = new Date().getTimezoneOffset() + tzHour * 60 + tzMin; + + _date = new Date(year, month - 1, day, hour, minute - tzOffset, second, msec); + } else { + console.log('regexp failed',value); + _date = new Date(value); + } + const date = _date; if (Number.isNaN(date.getTime())) { console.error('Invalid date in format service', value); return '';