如何使用 nodejs 将日期从表单日期选择器正确存储到 mongodb

How to properly store date from form datepicker into mongodb with nodejs

我正在使用 Angular Material 6 的日期选择器,它使用这种格式显示日期 06/20/1992 在我的浏览器控制台中,这是输出 1992 年 6 月 20 日星期六 00:00:00 GMT+0800(菲律宾标准时间)。现在,当我在节点中 console.log req.body 时,它输出如下 1992-06-19T16:00:00.000Z'。休息一天。

以下是我目前所做的。

var thisDate = new Date(req.body.birthdate);
var currentMonth = thisDate.getMonth() + 1;
var currentDay = thisDate.getDate();
var currentYear = thisDate.getFullYear();

console.log(thisDate); // 1992-06-19T16:00:00.000Z
console.log(currentMonth + '/' + currentDay + '/' + currentYear); //6/20/1992

有更简单的方法吗?我要把它保存到数据库中(mongodb)

JS 没有很多内置的日期格式化程序 - 您可以使用 getUTCMonthgetUTCDategetUTCFullYear 获得所需字符串的 UTC 版本。

如果您要进行大量日期操作,请考虑使用 Moment - 例如,对于 Moment,您需要的格式是 moment().format('D/M/YYYY')

这是因为您的 MongoDB 将日期保存为 UTC 并且您的浏览器显示的是当地时间。

如果你想保存在 GMT 时区,你需要使用 new Date() 但如果你想使用你自己的时区,你需要使用

new Date() new Date(date.getFullYear(), date.getMonth(), date.getDate(), a, b, 0, 0)

代替 ab,您必须以小时和分钟为单位输入与 GMT 的时区差异