有人可以帮忙吗? 为什么这段代码会产生错误的答案?
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
此外,它会在第一个周一的第一个星期一产生不正确的结果。
如果第一个不是星期一,它会起作用。
答案 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;)。