如何使用Node.js将日期从日期选择器中正确存储到MongoDB中

时间:2019-01-08 06:09:24

标签: javascript node.js angular-material-6

我正在使用Angular Material 6的Datepicker,它使用此格式 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)

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

您必须输入以小时和分钟为单位的与格林尼治标准时间的时差,以代替ab