gpt4 book ai didi

JavaScript "new Date"创建日期与原始日期字符串的时间不同

转载 作者:行者123 更新时间:2023-11-30 14:19:45 25 4
gpt4 key购买 nike

我正在获取字符串形式的日期 '2018-10-15 00:00:00.000',然后使用 new Date('2018-10-15 00:00:00.000')

我将此日期保存到数据库(使用 API)并将数据保存为 2018-10-15 **04**:00:00.000。注意凌晨 4 点。 API 获取日期时间为凌晨 4:00。

enter image description here

在我的 Angular 应用程序中,保存此日期的对象被定义为 Date 类型。

meeting_date: Date;

这是来自控制台。

dt = new Date('2018-10-15 00:00:00.000')
Mon Oct 15 2018 00:00:00 GMT-0400 (Eastern Daylight Time)

JSON.stringify(dt)
""2018-10-15T04:00:00.000Z""

我想将日期保存为 2018-10-15 00:00:00.000。我究竟做错了什么?

最佳答案

如果您获得的日期输入字符串代表 UTC,那么您可能希望以 UTC 创建 Date 对象(您当前的方法是在本地创建 Date 对象客户端计算机上的时间,这就是 EDT 偏移量影响您存储在数据库中的日期时间的原因)。另外,您应该知道 Date()not recommended for parsing date strings due to browser inconsistencies .

以下是使用一些简单的正则表达式解析字符串并创建 UTC 格式的 Date 对象的示例:

const str = '2018-10-15 00:00:00.000';
const [y, m, d, hh, mm, ss, ms] = str.match(/\d+/g);
const date = new Date(Date.UTC(y, m - 1, d, hh, mm, ss, ms));
console.log(JSON.stringify(date));

// date as UTC string
console.log(date.toUTCString());

// date as local string
console.log(date.toString());

关于JavaScript "new Date"创建日期与原始日期字符串的时间不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52957976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com