由于您在下面看到的内容,日期计算中发生了最奇怪的事情;请注意,在 10 月 31 日基础上加一个月,就会变成 12 月!这不可能吧?我在 Ubuntu 16 和 20 上也有同样的问题。这个问题也会导致我的 shell 脚本给出错误的日期,所以这不仅仅是 cron 调度程序的问题。
root@ubuntugc:/home/miuser# date -d "20210930+1 month" +%Y-%m-%d
2021-10-30
root@ubuntugc:/home/miuser# date -d "20211030+1 month" +%Y-%m-%d
2021-11-30
root@ubuntugc:/home/miuser# date -d "20211031+1 month" +%Y-%m-%d
2021-12-01
Run Code Online (Sandbox Code Playgroud)
这就是date工作原理,当添加它时1 month,它只会按月增加,在您的情况下,这2021-11-31是一个不存在的日期,因此它将结果向前移动一天到有效日期(2021-12-01)。来自coreutils 文档:
\n\n单位中的模糊可能会导致相关项目出现问题。例如,\xe2\x80\x982020-07-31 -1 Month\xe2\x80\x99 的计算结果可能为 2020-07-01,因为 2020-06-31 是无效日期。为了更可靠地确定上个月,您可以询问当月 15 日之前的月份。例如:
\n
| 归档时间: |
|
| 查看次数: |
304 次 |
| 最近记录: |