mongodb - MongoDB ISODate 返回不正确的日期和月份
问题描述
我正在尝试获取将记录/文档插入 MongoDB 集合的日期。我正在使用ObjectId.getTimestamp()函数从日期获取时间戳。
该函数返回一个ISODate
对象,通过这个问题,它看起来ISODate
只是原生 JavaScript 的一个包装器Date
。但是当我在对象上使用getDay()
andgetMonth()
方法时ISODate
,它会返回不正确的结果,尽管小时、分钟和年份似乎很好。
用法(Mongo shell)-
> db.user.count()
1
> db.user.findOne()._id.getTimestamp()
ISODate("2018-10-26T12:52:31Z")
> db.user.findOne()._id.getTimestamp().getDay()
5
> db.user.findOne()._id.getTimestamp().getMonth()
9
> db.user.findOne()._id.getTimestamp().getFullYear()
2018
> db.user.findOne()._id.getTimestamp().getHours()
12
> db.user.findOne()._id.getTimestamp().getMinutes()
52
>
根据这个 -
> db.user.findOne()._id.getTimestamp().getDay()
5
> db.user.findOne()._id.getTimestamp().getMonth()
9
day is5
和 month is 9
,但应该分别是26
和10
。
截屏 -
我究竟做错了什么?
解决方案
Date.getDay()返回星期几(0-6,0 - 星期日,1 - 星期一等),但Date.getDate()返回月份中的某一天。
db.user.findOne()._id.getTimestamp().getDate()
26
对于Date.getMonth(),JavaScriptDate
返回值 0 - 11,即 0 - 1 月、1 - 2 月等。9 - 10 月。
db.user.findOne()._id.getTimestamp().getMonth() + 1
10
链接https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#Getter
推荐阅读
- java - 当前位置android googlemaps的问题
- javascript - nodejs找不到本地文件夹模块
- python-3.x - 如何有效地遍历一个数据框中的列值并找到该值出现在其他数据框中的行?
- java - 我正在尝试创建一种将车辆的arrayList 转换为数组并返回数组的方法
- flutter - 如何使用选择器2?
- java - Dijkstra 算法打印最近的前驱路径而不是最短路径
- python - pyproj 为 UTM 返回 inf
- mysql - 有没有办法用 case 函数显示负值?
- java - Java 继承:HockeyTeam 类中的曲棍球比赛
- javascript - JavaScript | 范围 | 选择 - 有没有办法用 Javascript 来“取消粗体”、“单斜体”和 Range 的内容编辑?