0

我试图根据过去的上周二列出几个日期范围。我所期待的是...

June 6 - June 12
May 30 - June5

但我得到的是

June 6 - June 12
- December 24

我的代码如下

$lastWensE1 = date('F j', strtotime("last tuesday"));
$lastWensS1 = strtotime ( '-6 day' , strtotime ( $lastWensE1 ) ) ;

$lastWensE2 = strtotime ( '-7 day' , strtotime ( $lastWensE1 ) ) ;
$lastWensS2 = strtotime ( '-7 day' , strtotime ( $lastWensS1 ) ) ;

echo date('F j', $lastWensS1)." - ".$lastWensE1;
echo "<br/>";
echo date('F j', $lastWensS2)." - ".date('F j', $lastWensE2);
4

2 回答 2

1

因为您在这里指定了日期是代码,

$lastWensE1 = date('F j', strtotime("last tuesday"));
$lastWensS1 = strtotime ( '-6 day' , strtotime ( $lastWensE1 ) ) ;

$lastWensE2 = strtotime ( '-7 day' , strtotime ( $lastWensE1 ) ) ;
$lastWensS2 = strtotime ( '-7 day' , strtotime ( date('F j',$lastWensS1 )) ) ;

echo date('F j', $lastWensS1)." - ".$lastWensE1;
echo "<br/>";
echo date('F j', $lastWensS2)." - ".date('F j', $lastWensE2);
于 2012-06-14T14:57:57.807 回答
1

过去 3 个星期二的所有计算都应该先完成,然后再尝试格式化结果,这样可以提供更清晰的代码:

$lastTue1 = strtotime('last tuesday');
$lastTue2 = strtotime('-7 day' , $lastTue1 );
$lastTue3 = strtotime('-7 day' , $lastTue2 );

echo date('F j', strtotime('+1 day', $lastTue2))." - ".date('F j', $lastTue1);
echo "<br/>";
echo date('F j', strtotime('+1 day', $lastTue3))." - ".date('F j', $lastTue2);

这给出了:

June 6 - June 12
May 30 - June 5
于 2012-06-14T14:58:05.247 回答