strtotime() 第一个和最后一个的奇怪之处

发布于 2024-09-08 02:16:35 字数 391 浏览 3 评论 0原文

$day = date('l', strtotime('07/25/2010'));
echo "$day ";
echo date("m/d/Y", strtotime("first $day"));

这会打印出Sunday 07/11/2010

$day = date('l', strtotime('07/25/2010'));
echo "$day ";
echo date("m/d/Y", strtotime("last $day"));

这会打印出Sunday 07/04/2010

这里发生了什么?不应该分别是 07/04/2010 和 07/25/2010 吗?

$day = date('l', strtotime('07/25/2010'));
echo "$day ";
echo date("m/d/Y", strtotime("first $day"));

This prints out Sunday 07/11/2010

$day = date('l', strtotime('07/25/2010'));
echo "$day ";
echo date("m/d/Y", strtotime("last $day"));

This prints out Sunday 07/04/2010

What's going on here? Shouldn't it be 07/04/2010 and 07/25/2010 respectively?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

季末如歌 2024-09-15 02:16:35

我认为答案是正确的,因为它们与给定日期相关(如果没有给出,则默认为今天)。

基于 PHP 文档:

该函数期望得到一个
包含美国英语日期的字符串
格式并尝试解析它
格式为 Unix 时间戳(
自 1970 年 1 月 1 日以来的秒数
00:00:00 UTC),相对于
now 给出的时间戳,或当前的时间戳
如果现在没有提供时间。

所以第一个星期日实际上是 11 号,而最后星期日实际上是 4 号。根据您问题的措辞,您似乎正在寻找该月的第一个星期日和该月的最后一个星期日。此函数返回今天之后的第一个星期日和今天之前的最后一个星期日。

I think the answers are correct, because they are relative to the given date (which when not given defaults to today).

Based on the PHP docs:

The function expects to be given a
string containing a US English date
format and will try to parse that
format into a Unix timestamp (the
number of seconds since January 1 1970
00:00:00 UTC), relative to the
timestamp given in now, or the current
time if now is not supplied.

So FIRST SUNDAY is in fact the 11th, and LAST SUNDAY was in fact the 4th. Based on the wording of your question, it appears you are looking for the 1st Sunday of the month, and the last Sunday of the month. This function returns the first Sunday AFTER today, and the LAST Sunday before today.

情感失落者 2024-09-15 02:16:35

我可以对 last 说些什么,阅读 Datetime - 相对格式

“'last' dayname”采用当天的最后一天名称。 (例如:“last wed july 2008”表示“2008-06-25”;“july 2008”首先将当前日期设置为“2008-07-01”,然后“last wed”移动到上一个星期三,即“2008” -06-25")。

我想它与 first 类似,它为您提供下一个 dayname

I can say something to last, read Datetime - Relative Formats:

"'last' dayname" takes the last dayname from the current day. (Example: "last wed july 2008" means "2008-06-25"; "july 2008" first sets the current date to "2008-07-01" and then "last wed" moves to the previous Wednesday which is "2008-06-25").

I guess it is similar with first it gives you the next dayname.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文