日期功能产生错误输出

时间:2017-02-13 14:26:08

标签: php

有人可以帮忙吗? 为什么这段代码会产生错误的答案?

echo date("m/d/Y", strtotime("third monday", mktime(0,0,0,8,1,2016)));
echo '<br/>'.date("m/d/Y", strtotime("third monday 2016-08" ));

这两行的结果是:

08/22/2016

2016年8月的第三个星期一实际上是08/15/2016 此外,它会在第一个周一的第一个星期一产生不正确的结果。

如果第一个不是星期一,它会起作用。

2 个答案:

答案 0 :(得分:0)

找到了一个解决办法,但我无法告诉你为什么它会按照你的方式行事......希望其他人可以解释原因。

Document 1

使用h4可以让它发挥作用。

答案 1 :(得分:0)

找到这个解释: 观察&#34;&#34;在&#34;序数空间日名空间&#39;&#39; &#34;和&#34;&#39;最后&#39;空间日间空间&#39;&#39; &#34;做一些特别的事。

它将日期设置为1。   &#34;&#39;序数日期名称&#39;&#39; &#34;没有进展到另一天。    (例如:&#34; 2008年7月的第一个星期二和#34;意味着&#34; 2008-07-01&#34;)。 &#34;序数日期&#34;确实进展到另一天。 (例如:&#34; 2008年7月的第一个星期二和#34;意味着&#34; 2008-07-08&#34;,

(&#34;序数日期和#34;确实进展到另一天。 (例子&#34; 2008年7月23日星期三和#34;表示&#34; 2008-07-30&#34;)。 )

&#34;&#39;最后&#39;的日期名称&#39; &#34;获取当月的最后一个日期名称。 (例如:&#34; 2008年7月的最后一次婚礼和#34;意味着&#34; 2008-07-30&#34;)

"'last' dayname" takes the last dayname from the current day. 

(例如:&#34; 2008年7月上旬和#34;表示&#34; 2008-06-25&#34 ;;&#34; 2008年7月&#34; 首先将当前日期设置为&#34; 2008-07-01&#34;然后&#34;最后结婚&#34;移至上周三,即2008-06-25&#34;)。