Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 前端的new Date()格式与后端的new Date()格式不同_Javascript_Node.js_Express_Mongoose - Fatal编程技术网

Javascript 前端的new Date()格式与后端的new Date()格式不同

Javascript 前端的new Date()格式与后端的new Date()格式不同,javascript,node.js,express,mongoose,Javascript,Node.js,Express,Mongoose,因此,我得到了一个网络应用程序,用户可以在其中购买对该应用程序的“一天访问”。这个想法是,当用户购买时,我用endDate属性更新用户。登录后,我将检查endDate中的值是否已通过。我的模型: const UserSchema = new Schema({ username: { type: String, required: true }, password: { type: String, requir

因此,我得到了一个网络应用程序,用户可以在其中购买对该应用程序的“一天访问”。这个想法是,当用户购买时,我用
endDate
属性更新用户。登录后,我将检查endDate中的值是否已通过。我的模型:

const UserSchema = new Schema({
    username: {
        type: String,
        required: true
    },
    password: {
        type: String,
        required: true
    },
    endDate: {
        type: Date,
    },
});
现在,奇怪的是,在我的前端(以及像jsfidle&Playcode.io之类的在线沙盒),以下代码以以下格式为我提供了明天的日期:

格式:
2020年2月6日星期四11:23:06 GMT+0100(中欧标准时间)

代码:

在我的后端使用完全相同的代码,日期结果的格式完全不同:

格式:
“2020-02-06T10:12:25.559Z”

代码:


为什么会发生这种情况?我可以做些什么使格式看起来相同?我遗漏了什么吗?

差异的原因: 从后端发送数据时,数据将作为字符串化JSON发送。这就是为什么使用ISO字符串而不是日期对象的原因

解决方案 您可以获取ISO字符串,并在前端代码中再次使用新日期(字符串)对其进行解析,以便按照您希望的方式查看


另一种方法是使用名为的npm模块将其作为对象发送,而不是字符串化的JSON。

您可以将其留给
console.log
来决定如何将日期转换为字符串表示形式。一个是使用
toString
,另一个是以ISO格式(UTC)显示。而是使用其中一个日期方法将其显式转换为字符串表示形式。然后,还要考虑服务器和客户端之间的区域设置差异(如时区或日期格式)。这就是为什么不应该依赖
toString
来确定日期的原因。它取决于运行它的设备上设置的区域设置。您应该尝试使用
toISOString()
togmstring()
@Seblor登录。谢谢大家。不知道有不同的方法将日期转换为字符串表示形式。
let day = new Date();
let nextDay = new Date(day);
nextDay.setDate(day.getDate() + 1);

console.log(nextDay); 
router.get('/test', (req, res) => {
    let day = new Date();
    let nextDay = new Date(day);
    nextDay.setDate(day.getDate() + 1);
    res.send(nextDay)
})