我的评论有点冗长,所以我会把它作为答案贴在这里。
toLocaleString
仅格式化给定的字符串,但显示的时间仍将与运行该字符串的服务器/客户机的系统时间相关联。
因为您尝试使用的两台机器不在同一时区,所以会发生这种情况。
您可以考虑存储
Date
对象本身,因此它与运行程序的任何服务器都是不变的。另外,如果您有需要,它可以让您更容易地进行日期操作。
或者,你可以通过你想要的时区
托卡拉弦
像这样:
let date = new Date();
let postDate = date.toLocaleString("en-US", {timeZone: "America/New_York"});
const post = new Post({
date: postDate,
title: postTitle,
content: postBody
});
您将在
托卡拉弦
在
official Mozilla docs
您还可以在此维基百科条目中找到可使用的时区名称的综合列表:
List of tz database time zones
. 您可以使用状态为的任何时区
Canonical
或
Alias
. 任何其他时区都会
RangeError
例外。