php - 为什么 PHP 8 会返回错误的明年第二个星期五
问题描述
但是,为了获得明年的第二个星期五,我使用second Friday of Januar next year
了 ,这会返回错误的日期。(这不仅是第二个或星期五,这涉及以这种方式的每个日期)
请参阅以下示例
$FIRST_FRI_JAN_NEXT_YEAR_TEXT = 'second friday of january next year';
$jan1 = new DateTime($FIRST_FRI_JAN_NEXT_YEAR_TEXT ); // = 22-01-08 // wrong date
$FIRST_FRI_JAN_NEXT_YEAR_NUMBER = 'second friday of 2022-01';
$jan2 = new DateTime($FIRST_FRI_JAN_NEXT_YEAR_NUMBER); // = 22-01-14 // right date
这是有原因的还是这是一个错误?
解决方案
这不是一个错误。“明年一月的第二个星期五”解释为今年的“一月的第二个星期五”,“明年”解释为+1年。对于长表达式,处理它们的顺序并不总是很清楚。通常最好分几个步骤执行此操作。
$jan2 = date_create('next year')->modify('second friday of january'); //2022-01-14
推荐阅读
- gmail - 如何在用户键入后以编程方式添加材料芯片来编辑文本
- javascript - 生活在 DOM 中的表单状态是什么意思?
- javascript - JS循环遍历ajax结果
- sqlite - SQLite:选择从 n 到 ny 范围内的最小值
- c# - 如何在此 Linq 查询中避免多个“ToLower”?
- vue.js - 电子构建失败
- javascript - React-Native (0.64.2) Formik handleSubmit onSubmit 未触发
- ruby - 带有&符号的标题用link_to转义 - 如何防止这种情况?
- vue.js - 带有基于 api 信息的主题的 Nuxt PWA
- angular - 错误类型错误:无法读取未定义的 ngxs 注销的属性“管道”