我正在尝试计算相对于特定日期的日期,但我得到了一些非常不寻常的回复。谁能解释我做错了什么?如果重要,我是美国东部时间。
<?php
$firstweek_firsttime = date('D M j', strtotime("June 2016 first Sunday"));//June 19th 2016
$firstweek_lasttime = date('D M j', strtotime("June 2016 second Saturday"));
$ret=array(
"Session #1. The week of ".$firstweek_firsttime." to ".$firstweek_lasttime." - ",
"Session #2. The week of ".date('D M j', strtotime("$firstweek_firsttime next Sunday"))." to ".date('D M j', strtotime("$firstweek_lasttime next Saturday"))." - ",
"Session #3. The week of ".date('D M j', strtotime("$firstweek_firsttime +10 day"))." to ".date('D M j', strtotime("$firstweek_lasttime +10 day"))." - "
);
?>
<ul>
<?php
foreach($ret as $wk)
{
?>
<li><?php echo($wk);?></li>
<?php
}
?>
我得到的是什么:
The week of Sun Jun 19 to Sat Jun 18 -
The week of Thu Jan 1 to Thu Jan 1 -
The week of Wed Jul 1 to Tue Jun 30 -
目标:
The week of Sun Jun 19 to Sat Jun 25 -
The week of Sun Jun 26 to Sat Jul 2 -
The week of Sun Jul 3 to Sat Jul 9 -
答案 0 :(得分:1)
这适合我。
你&#34;你&#34;除非您设置时区,否则与您的日期无关。 日期/时间根据服务器位置设置。
这有点麻烦,如果我能找到更好的方法,我会更新我的答案。
<强>更新强>
strtotime("$firstweek_firsttime");
相当于写strtotime("Sun Jun 5");
将输出1433635200(截至今天,实际上是2015年6月7日00:00:00)因为没有指示年份,服务器默认为当年
strtotime("next sunday");
将输出1441497600(截至今天,等于2015年9月6日星期日00:00:00
但
strtotime("$firstweek_firsttime next sunday");
是无效的标记,不会输出任何内容
所以,由于时间戳为空,日期自动设置为1970年1月1日
strtotime("$firstweek_lasttime next Saturday")
strtotime("$firstweek_firsttime +10 days")
与strtotime("Sun Jun 5 +10 days")
相同
没有年份,服务器默认为当前年份并将其写为strtotime("Sun Jun 7 2015 +10 days")
,因为6月7日是2015年6月的第一个星期日
strtotime("$firstweek_lasttime +10 day")
所有这一切......你的问题的简单解决方案是将年份添加到$ firstweek_firsttime和$ firstweek_lasttime的日期格式中。这将使您的日期保持在您期望的那一年......
<?php
$firstweek_firsttime = date('D M j Y', strtotime("June 2016 first Sunday")); // Sun Jun 5 2016
$firstweek_lasttime = date('D M j Y', strtotime("June 2016 second Saturday"));
如果您不想将年份输出到浏览器,只需将您的第一个数组项目更改为...
"Session #1. The week of ".date('D M j', strtotime("$firstweek_firsttime"))." to ".date('D M j', strtotime("$firstweek_lasttime"))." - ",
<强>参考强>