首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在php-7中“2020的第一次婚礼”和“2020年1月的第一次婚礼”

在php-7中“2020的第一次婚礼”和“2020年1月的第一次婚礼”
EN

Stack Overflow用户
提问于 2020-01-09 17:01:23
回答 2查看 215关注 0票数 4

今天,我在我编写的应用程序中遇到了同事报告的PhP-7中的一个奇怪的bug/特性。它归结为以下几点。

请考虑以下几点:

代码语言:javascript
复制
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'));

当我运行它时,我看到以下内容:

代码语言:javascript
复制
2020-01-02
2020-01-02
2020-01-01
2020-01-08

奇怪的是,输出的第3行和第4行是不同的。为什么?在这种情况下,它是一个bug还是必须使用of

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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

票数 5
EN

Stack Overflow用户

发布于 2020-01-09 19:45:09

根据文档,您必须使用的格式是

代码语言:javascript
复制
ordinal space dayname space 'of'

因此,'of'不是可选的。我不知道为什么在某些情况下没有,但这似乎是一个巧合。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59668877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档