我在约会时做了一些芒果聚合,并且遇到了一个有趣的问题,即从芒果返回的$week不同于从鲁迅返回的weekNumber。
在下面的代码片段中,来自mongo的$week返回47,而来自Luxon的weekNumber返回48。
是否有办法使两者正常化,使给定日期返回相同的周/周数?
我可以从鲁迅返回的值中减去一个,但我想了解为什么反应是不同的,以确定是否有一种更合适/更优雅的方法来解决这个问题。
MONGO
[{
'$match': {
'date': {
'$eq': datetime(2020, 11, 23, 0, 0, 0, tzinfo=timezone.utc)
}
}
}, {
'$project': {
'w': {
'$week': '$date'
}
}
}]鲁迅
import { DateTime } from "luxon";
var week = DateTime.fromJSDate(new Date(2020,10,23)).weekNumber;
console.log(week);发布于 2020-11-25 13:08:12
看一看文档:
周日历:有关ISO周日历属性,请参见weekYear、weekNumber和工作日访问器。
以0到53之间的数字返回一年中日期的周数。 周从星期日开始,第一周从一年中的第一个星期天开始。一年中第一个星期日之前的日子是在第0周。此行为与strftime标准库函数的“%U”操作符相同。
如果您想按照ISO-8601获得周数,请使用$isoWeek():
返回ISO 8601格式的周数,范围从1到53不等。周数从1开始,每周(周一到周日)包含一年的第一个星期四。
看起来在鲁迅中没有相当于MongoDB的$week
https://stackoverflow.com/questions/65005041
复制相似问题