fix timezone for publish date mutation (#149)
This commit is contained in:
@@ -537,15 +537,18 @@ export class ProductAPI extends BaseSQLDataSource {
|
||||
promises.push(promise);
|
||||
}
|
||||
|
||||
const pd = info.publishingDate;
|
||||
const publishingDate = new Date(
|
||||
pd.getFullYear(),
|
||||
pd.getMonth(),
|
||||
pd.getDate(),
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
);
|
||||
const publishingDate = info.publishingDate;
|
||||
// Some notes about timezone here:
|
||||
// If client sets YYYY-MM-10T00:00:00.000+02 (which admin does) the timestamp
|
||||
// here will be YYYY-MM-09T22:00:00.000Z since JS internal Dates are always in UTC and will be
|
||||
// sent like the string above from client to graphql server.
|
||||
// Some functions on the Date object however is local timezone dependent. setHours is one of them.
|
||||
// So as long as we correctly set timezone for node to be Europe/Paris to match
|
||||
// database server the publishDate above (in UTC) can be YYYY-MM-09T22:00:00.000Z and setHours will not (incorrectly)
|
||||
// set it to YYYY-MM-09T00:00:00.000Z but but instead keep it as YYYY-MM-09T22:00:00.000Z since that is hour, minute
|
||||
// second 0 of YYYY-MM-10 with the local timezone.
|
||||
publishingDate.setHours(0, 0, 0);
|
||||
|
||||
promises.push(
|
||||
this.knex
|
||||
.table('product-products')
|
||||
|
||||
Reference in New Issue
Block a user