我有以下代码:
var l_date = new Date();
l_date.setDate(30);
l_date.setHours(23);
l_date.setMinutes(59);
l_date.setSeconds(59);
l_date;
但是我想以编程方式设置月份的最后一天,因为它不是常量,因为使用函数来检索这些数据,如何在mongo中获取它?
答案 0 :(得分:2)
var userMonth = 0; // January
var userYear = 2016
var d = new Date(userYear, userMonth + 1, 0);
d -> Last day of the userMonth
尝试通过Javascript实现本月的最后一天
对于MongoDb
var dayNo = 3
var answer = new Date(ISODate().getTime() + 1000 * 3600 * 24 * dayNo )
此答案将是当前日期的第三天。
答案 1 :(得分:1)
var d= new Date(this.getFullYear(), this.getMonth()+1, 0);
return d.getDate();
用于获取月中最后一天的天数的JavaScript代码
答案 2 :(得分:0)
如果有人想使用aggregation进行计算,那么这会有所帮助。
在MongoDB 4.2中,包含了$$NOW
,这是一个可以在聚合管道中访问的变量,该变量将当前时间作为ISODate返回。
db.collection.aggregate([
{
"$project": {
monthEnd: {
$subtract: [
{
$dateFromParts: {
"year": {
$year: "$$NOW"
},
"month": {
$add: [
{
$month: "$$NOW"
},
1
]
}
}
},
86400000
]
}
}
}
])
由于此答案是在2020年7月创建的,因此结果是:
[
{
"_id": ObjectId("5a934e000102030405000000"),
"monthEnd": ISODate("2020-07-31T00:00:00Z")
}
]