Javascript new Date()在app.js和ejs中有不同的输出

Javascript new Date()在app.js和ejs中有不同的输出,javascript,html,node.js,express,ejs,Javascript,Html,Node.js,Express,Ejs,这将给出输出“2019-03-19T04:50:47.710Z”,即我通过mydomain/test访问时的UTC app.get("/test",function(req,res){ var d = new Date(); res.send(d); }); 下面是我的测试- app.get("/testejs",function(req,res){ res.render("testejs");}); 当通过mydomain/testejs访问此ejs时,会给出输出- 2019年3月19

这将给出输出“2019-03-19T04:50:47.710Z”,即我通过mydomain/test访问时的UTC

app.get("/test",function(req,res){
var d = new Date();
res.send(d);
});
下面是我的测试-

app.get("/testejs",function(req,res){
res.render("testejs");});

当通过mydomain/testejs访问此ejs时,会给出输出-

2019年3月19日星期二12:55:52 GMT+0800(新加坡标准时间)

new Date()从(app.js和testejs.ejs)中给我两个不同的输出,但它是在同一台服务器上执行的,这怎么可能呢
new Date()。toLocaleString()
new Date()生成一个日期值,它是自基准时间(通常是1970年1月1日)起的毫秒数。确切值取决于生成值的服务器上的时钟设置

该值可以以多种方式显示

根据客户端环境的默认设置, 我的时间可能在UTC,或本地[或其他]时区, 以各种形式

请注意,协调世界时04:50和格林尼治标准时间12:55+0800的间隔约为5分钟, 但是在不同的时区。如果这是两个测试,则运行5分钟 除此之外,这可以解释这种差异

不是使用默认的toString()方法来显示时间, 使用getTime()查看原始数字。

你好,
请记住,app.js在服务器端运行,ejs在浏览器上运行,浏览器日期格式与服务器不同。

它们不是两个不同的日期,而是不同时区的同一日期

不同格式的原因是如何为日期对象编写toString()方法, toString()方法的编写方式是返回UTC格式的日期,因此当您在浏览器上发送该日期时,它会调用该日期的toString,因为在装载之前,所有内容都将转换为字符串

new Date()调用构造函数并返回Date实例,该实例也将包含其所有方法,然而,Date()是一个返回字符串化日期的函数

请参见下面的示例

date=新日期('2019年3月19日星期二12:55:52 GMT+0800')
console.log(日期)
console.log('toString-%s',date.toString())
console.log('toString-%s',''+日期)
console.log('2019年3月19日星期二12:55:52 GMT+0800')
//管理补偿
控制台日志(日期('2019年3月19日星期二12:55:52 GMT+0800'))
date.setTime(date.getTime()+(8-5.5)*60*1000);

console.log(date)
getFullYear()以四位数获取年份(yyyy)getMonth()以数字形式获取月份(0-11)getDate()以数字形式获取日期(1-31)getHours()获取小时(0-23)getMinutes()获取分钟(0-59)getSeconds()获取秒(0-59)getmillities()获取毫秒(0-999)getTime()获取时间(自1970年1月1日起毫秒)getDay()获取工作日作为数字(0-6)日期。now()获取时间。ECMAScript 5。如果希望在客户端显示相同的日期和时间,则可以将数据从服务器端传递到客户端步骤1:app.js res.render('pages/home',{“serverdate”:new Date().toLocaleString()});步骤2:ejs文件将记住这一点,并尝试使用.tolocalString。正如文档所述-ejs是一种简单的模板语言,可以使用纯JavaScript生成HTML标记。我认为它在服务器中执行文件并向客户端发送一个简单的HTML。我说得对吗?你说得对@VikramRay,只需打印从s传递的d变量即可服务器到客户端站点的时间和格式将是一致的。明白了。谢谢。当我尝试在IST上午9点组织活动时,它以UTC格式保存为01:*:**。它应保存为UTC 3:30,因为我正在从浏览器中的日期选择器组织活动。我尝试将服务器时间更改为IST。当我使用终端检查日期时,它会显示正确的时间ime在IST中。但在后台它将其保存为新加坡当地时间。有人知道为什么终端会给出IST,而服务器通过从中减去8小时来保存UTC数据吗?
<%= new Date() %>