今天,我在我编写的应用程序中遇到了同事报告的PhP-7中的一个奇怪的bug/特性。它归结为以下几点。
请考虑以下几点:
echo date('Y-m-d', strtotime('first thu of Jan 2020'));
echo '<br/>';
echo date('Y-m-d', strtotime('first thu Jan 2020'));
echo '<br/>';
echo date('Y-m-d', strtotime('first wed of Jan 2020'));
echo '<br/>';
echo date('Y-m-d', strtotime('first wed Jan 2020'));当我运行它时,我看到以下内容:
2020-01-02
2020-01-02
2020-01-01
2020-01-08奇怪的是,输出的第3行和第4行是不同的。为什么?在这种情况下,它是一个bug还是必须使用of?
发布于 2020-01-10 10:22:06
文档 (第二注意组,第4行)中提到了这种行为:
“序号日名”会提前到另一天。(例如“2008年7月23日第一个星期三”是指"2008-07-30")。
另见第一个注:
相对语句总是在非相关语句之后处理.这就相当于“2008年7月+1周”和“2008年7月+1周”。
因此,如果您不写单词"of“,处理器就不会捕捉到”第一天“的语句。因此,它将字符串拆分为两个语句:首先将日期设置为2020年1月1日(通过解释为非相对语句的语句Jan 2020 ),然后应用上面提到的相对语句first wed。
发布于 2020-01-09 19:45:09
https://stackoverflow.com/questions/59668877
复制相似问题