Mongo和Luxon中weekNumber之间的差异



我正在对日期进行一些mongo聚合,遇到了一个有趣的问题,即从mongo返回的$week与从Luxon返回的weekNumber不同。

在下面的代码片段中,mongo的$week返回47,而Luxon的weekNumber返回48。

有没有一种方法可以使两者正常化,从而使给定日期返回相同的$week/weekNumber?

我可以从Luxon返回的值中减去一,但我想了解为什么响应不同,以确定是否有更合适/更优雅的方法来解决这个问题。

MONGO

[{
'$match': {
'date': {
'$eq': datetime(2020, 11, 23, 0, 0, 0, tzinfo=timezone.utc)
}
}
}, {
'$project': {
'w': {
'$week': '$date'
}
}
}]

LUXON

import { DateTime } from "luxon";
var week = DateTime.fromJSDate(new Date(2020,10,23)).weekNumber;
console.log(week);

查看文档:

周编号:

周日历:有关ISO周日历属性,请参阅weekYear、weekNumber和工作日访问者。

$week:

以0到53之间的数字形式返回日期的一年中的星期。

每周从星期日开始,第1周从一年中的第一个星期日开始。一年中第一个星期日之前的日子在第0周。此行为与strftime标准库函数的"%U"运算符相同。

如果你想根据ISO-8601获得周数,请使用$isoWeek((:

返回ISO 8601格式的周数,范围从1到53。周数从1开始,包含一年中第一个星期四的一周(星期一到星期日(。

看起来在Luxon中没有类似于MongoDB的$week

相关内容

  • 没有找到相关文章

最新更新