mongodb对于时间的存储问题

来源:互联网 发布:英国普利茅斯大学 知乎 编辑:程序博客网 时间:2024/05/29 13:39
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的,无论取出的是什么类型的字段都是需要转换的