【发布时间】:2022-01-23 16:13:40
【问题描述】:
我使用返回以下数据的 API:
{
"count": 3,
"data": [
{
"id": "11ec62fcfc82e511b06a756430fa6a9e",
"type": "HOLIDAY",
"from": "2021-12-13",
"to": "2021-12-19",
"resourceId": "11ec46d6abeeeb08b8f937e6be68fdf0",
"createdAt": "2021-12-22T07:58:44"
},
{
"id": "11ec5e81746041328bd6f1d234a6c496",
"type": "ILLNESS",
"from": "2021-12-15",
"to": "2021-12-17",
"resourceId": "11ec46e7a62ab8f6b8f937e6be68fdf0",
"createdAt": "2021-12-16T03:04:23"
},
{
"id": "11ec62ff1df2654d8bd6f1d234a6c496",
"type": "HOLIDAY",
"from": "2021-12-24",
"to": "2021-12-24",
"resourceId": "11ec46d6547a00728be3e1ed8ff29535",
"createdAt": "2021-12-22T08:14:00"
}
],
"success": true
}
这些是假期和疾病数据。我有一份每周报告,我需要计算特定“ressourceID”在该周内休假/生病的天数。如何计算特定周内“从”-“到”范围内的天数?
我不知道如何轻松做到这一点。我在考虑 https://www.php.net/manual/de/datetime.format.php 将其转换为“z”格式,但我也找不到简单的方法。
让我添加一个我正在寻找的示例,我认为这个问题并不清楚:
假设我们有下一周:
考虑周:20.12。 - 24.12.
现在我们可以有以下缺勤情况以及如何考虑这些情况
案例 1:缺勤在 Weekstart 之前开始并在一周内结束
缺席:15.12。 - 21.12.
=> 在这种情况下,一周中包含 2 天
案例 2:缺勤在 Weekstart 之前开始并在一周之后结束
缺席:15.12。 - 26.12.
=> 在这种情况下,一周中包含 5 天
案例 3:缺勤在一周内开始,在一周内结束
缺席 = 20.12。 - 22.12.
=> 在这种情况下,一周中包含 3 天
案例 4:缺勤始于一周内,一周后结束
缺席:21.12。 - 29.12.
=> 在这种情况下,一周中包含 4 天
一般来说,我正在寻找一种方法来比较 2 个日期范围(周和缺席)并获取两个范围之间的交集天数。 In Chinese: 我这周有多少天的假期/病假。
【问题讨论】:
-
您需要从 FROM DATE 到当前日期的周数还是应该是 TO DATE 减去 FROM DATE?
-
我们有很多预先存在的页面来演示如何使用 DateTime 对象和
diff()方法。您尚未描述所提供输入的确切期望输出。 -
@mickmackusa 很清楚,比如
Week 39: 7 days、Week 40: 5 days等等 -
我将更新我的问题以使其更清楚。 @丹尼尔W。 - 你说得对,这就是我要找的
-
所需输出的格式对于确保所有答案都达到完全相同的结果至关重要。如果没有完整的minimal reproducible example,我们将有一个包含一堆不同答案的页面,这些答案提供的结果略有不同——这不适合这个问答。目前,这个问题看起来像是一个需要更多关注的“需求转储”。