您的位置:首页 > 数据库 > Mongodb

mongodb对于时间的存储问题

2017-11-17 09:20 127 查看
mongodb
如果是时间类型的数据入库,将会有以下操作。同时,在数据读取的时间仍然需要对其进行转换操作。除了知道时间是时间类型作统一,貌似没有其他方便之处。

    date = new Date();//入库时间
var localTime = date.getTime();
var localOffset=date.getTimezoneOffset()*60000; //获得当地时间偏移的毫秒数
var utc = localTime + localOffset; //utc即GMT时间
var offset =16; //以北京时间为例,东8区
var beijing = utc + (3600000*offset);
date = new Date(beijing);
data.time = date;
var receiveTime = new Date(
parseInt(data.DataTime.substring(0,4)),//年
parseInt(data.DataTime.substring(4,6)) - 1,//月,从零开始,需要减一
parseInt(data.DataTime.substring(6,8)),//日
parseInt(data.DataTime.substring(8,10)),//时
parseInt(data.DataTime.substring(10,12)),//分
parseInt(data.DataTime.substring(12,14))//秒
);
localTime = receiveTime.getTime();
localOffset = receiveTime.getTimezoneOffset() * 60000;
utc = localTime + localOffset;
beijing = utc + (3600000*offset);
data.DataTime = new Date(beijing);


将时区再加8个之后入库就正常了

如果使用string 或者时间戳 将会有以下优势

1.格式统一为熟悉的自己定义的类型,方便读写

2.数据的比较和数据的计算将会简化

3.数据的插入将会简化转换,不会造成时间错误

4.mongodb本身是基于document的,无论取出的是什么类型的字段都是需要转换的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: