Мой комментарий становился немного длинным, поэтому я опубликую его здесь как ответ.
toLocaleString
только форматирует заданную строку, но время ее отображения все равно будетпривязан к системному времени сервера / клиента, на котором он работает.Так как две машины, на которых вы его пробовали, не находятся в одном и том же часовом поясе, это происходит.
Возможно, вы захотите сохранить сам объект Date
, чтобы он был неизменным для любого сервера, на котором вы будете запускать программу.Кроме того, он позволит вам легче выполнять операции с датами, если у вас возникнет такая необходимость.
В качестве альтернативы вы можете передать желаемый часовой пояс toLocaleString
следующим образом:
let date = new Date();
let postDate = date.toLocaleString("en-US", {timeZone: "America/New_York"});
const post = new Post({
date: postDate,
title: postTitle,
content: postBody
});
Более подробную информацию о toLocaleString
вы найдете в официальных документах Mozilla
Вы также найдете полный список названий часовых поясов, которые вы можете использовать в этой записи в Википедии: Списокчасовых поясов базы данных tz .Вы можете использовать любой часовой пояс, для которого статус Canonical
или Alias
.Любой другой часовой пояс выдаст исключение RangeError
.