fix timezone for publish date mutation (#149)
This commit is contained in:
+1
-1
@@ -12,4 +12,4 @@ ENV NEW_RELIC_NO_CONFIG_FILE=true
|
||||
# Installs npm dependencies on container
|
||||
RUN npm ci
|
||||
# Command container will actually run when called
|
||||
CMD ["npx", "nodemon", "-w", "src", "--ext", "ts", "--exec", "ts-node", "src/index.ts"]
|
||||
CMD ["npx", "nodemon", "-w", "src", "--ext", "ts", "--exec", "TZ=Europe/Paris", "ts-node", "src/index.ts"]
|
||||
|
||||
+1
-1
@@ -9,4 +9,4 @@ WORKDIR /app
|
||||
ENV NODE_ENV=development
|
||||
ENV NEW_RELIC_NO_CONFIG_FILE=true
|
||||
# Command container will actually run when called
|
||||
CMD ["npx", "nodemon", "-w", "src", "--ext", "ts", "--exec", "ts-node", "src/index.ts"]
|
||||
CMD ["npx", "nodemon", "-w", "src", "--ext", "ts", "--exec", "TZ=Europe/Paris", "ts-node", "src/index.ts"]
|
||||
|
||||
@@ -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