我在使用 mongo 和 autoform 处理日期/时间时遇到了问题。
我从另一个数据库系统开始迁移,在那里我将日期存储为字符串。
迁移是在 PHP 中进行的,我使用以下内容转换为 Mongo 日期:
return new MongoDate(strtotime($date));
因此,例如,我从 1960 年 7 月 30 日(1960 年 7 月 30 日)开始
在 Mongodb 中,我看到:
ISODate("1960-07-30T05:00:00.000+0000"),
而且,当我使用助手和矩库在我的表格网格中查看它时:
Template.registerHelper("mdy", function (date) {
if (date) {
return moment(date).format('MM/DD/YYYY');
}
});
我得到:1960 年 7 月 30 日
然后,我在一个表单中打开它,使用autoForm
这样的模式:
someDate: {
type: Date,
}
仍然,我明白了07/30/1960
但随后我将其保存到数据库中,然后在数据库中查看保存的内容:
ISODate("1960-07-30T00:00:00.000+0000"),
(注意它已从 T05 更改为 T00)
现在,当我在表格网格中显示它时,我看到:
07/29/1960
但有趣的是,如果我在 中再次打开该记录autoform
,它会显示07/30/1960
因此,时区或 GMT 偏移量或类似的东西显然有问题
有人知道我错过了什么吗?
编辑:有趣的观察...我昨天,4 月 28 日星期二,今天是 4 月 29 日星期三记录了这个问题,但问题仍然是“今天问”
编辑:添加 mongodb 标签......如果这不是 mongo 问题,你们 mongo 家伙可以删除标签!