显示错误日期的Javascript
我目前正在测试运行一个带有路由等的服务器,我试图显示前一个人请求该路由的日期。通常,当我使用新的Date()对象时,我会在本地时间获取它,但由于某些原因,它会以UTC(协调世界时)显示,我不知道如何更改它 我的代码是显示错误日期的Javascript,javascript,html,Javascript,Html,我目前正在测试运行一个带有路由等的服务器,我试图显示前一个人请求该路由的日期。通常,当我使用新的Date()对象时,我会在本地时间获取它,但由于某些原因,它会以UTC(协调世界时)显示,我不知道如何更改它 我的代码是 var date; var dateArr = []; var counter = 0; router.get('/last.txt', function(req, res) { counter++; date = new Date().toString();
var date;
var dateArr = [];
var counter = 0;
router.get('/last.txt', function(req, res) {
counter++;
date = new Date().toString();
dateArr.push(date);
if (counter == 1) {
res.send("");
} else {
res.send(dateArr[counter-1]);
}
});
但我一直收到以下格式的日期:
2021年3月26日星期五07:24:50 GMT+0000(协调世界时)
任何建议都将不胜感激
编辑:我住在澳大利亚,因此我认为它通常在AEDT中输出。UTC似乎是运行此代码的服务器所在的时区。这很好,您可以很容易地将其转换为客户端上的本地时区。但是,我不会使用
toString
,而是存储Date
对象或其时间值(.valueOf()
的结果),或.toISOString()
的结果,然后将时间值(一个数字)或ISO字符串值发送给客户端。这样,您就不需要依赖服务器的时区。当您将其中一个(时间值或ISO字符串)传递到客户端站点上的new Date
中时,生成的Date
将具有相同的日期/时间,但由于它在客户端的时区中运行,因此其本地时间格式化方法,如toString
,getFullYear
,等等。,将使用客户端的本地时区
例如,将代码中的toString
更改为(例如)toISOString
,并在客户端上:
const dt = new Date(theStringFromTheServer);
console.log(dt.toString()); // Will use the client's timezone to show the date/time
哇…我知道UTC是法文版,英文版是“协调世界时”,但这可能是我第一次看到CUT被用来指代它。还有,为什么要从服务器发送格式化的日期?通常,服务器会发送时区不可知日期(UTC/Unix时间戳),客户端会相应地对其进行格式化。@VLAZ切口被打错了您是否尝试了
new date().toutString()
?@Anurag yeah,它会返回“TypeError:date.toutString不是函数”