Otherwise, depending on the local time zone, the date displayed
could be off a day.
The 'dob' columns are currently the the _only_ database/IDL fields
that are truly dates, not timestamps, hence the hard-coded exception.
However, an alternative approach would be to define a new 'date'
field type in the IDL.
To test
-------
[1] Construct an eg-grid (say, on the Angular sandbox page) that retrieves
patron records. For users in North America, the birth dates are
likely off by a day.
[2] Apply the patch and repeat step 1. This time, the birth dates should
display as entered.
Sponsored-by: MassLNC
Sponsored-by: Georgia Public Library Service
Sponsored-by: Indiana State Library
Sponsored-by: CW MARS
Sponsored-by: King County Library System
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
if (params.datePlusTime) {
fmt = this.dateTimeFormat || 'short';
}
- return this.datePipe.transform(date, fmt);
+ let tz;
+ if (params.idlField === 'dob') {
+ // special case: since dob is the only date column that the
+ // IDL thinks of as a timestamp, the date object comes over
+ // as a UTC value; apply the correct timezone rather than the
+ // local one
+ tz = 'UTC';
+ }
+ return this.datePipe.transform(date, fmt, tz);
case 'money':
return this.currencyPipe.transform(value);