Can I make node.js Date always be in UTC/GMT?
From the MDN docs on Date#getTime
:
The value returned by the getTime method is the number of milliseconds since 1 January 1970 00:00:00 UTC.
Assuming you're storing dates/times as numbers (which I would recommend), getTime
is already UTC, always.
Suppose your client then requests a date from the server. If the server provides the date as a number, the client can then do:
new Date(timestamp);
And it will be correctly adjusted to the local time on the client.
Of course, maybe I'm misunderstanding your problem. But I just want to point out that this...
new Date().getTime() + new Date().getTimezoneOffset();
...should never really make sense. It's taking a UTC-based time and then offsetting it further, in essence double-offsetting a time.
You can use TZ
configuration parameter of node.js as follows.
For bash (and related)
export TZ=UTC
For Powershell
$env:TC = 'UTC'
Then for both:
nodejs server/index.js