我得到一个字符串'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。
在我的角度应用程序中,保存此日期的对象被定义为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 inputDate = '2018-10-15 00:00:00.000';
let [y, m, d, hh, mm, ss, ms] = inputDate.match(/\d+/g);
let 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());