0

使用我现在拥有的代码,它设法返回了 1969 年和 1970 年的日期。$endDate 的示例是 23-8-2013。日月年。

$endDte = date_create_from_format('j-n-Y', $endDate);

echo date('Y-m-d', strtotime('-1 Sunday', strtotime($endDte))). date('Y-m-d', strtotime('+1 Saturday', strtotime($endDte)));

这段代码似乎没有给我相对于给定日期的上一个星期日和下一个星期六,所以我想知道我是否做错了什么。

4

2 回答 2

2

date_create_from_format返回一个DateTime对象,而不是您应该运行的字符串strtotime...:

$date = date_create_from_format('j-n-Y', $endDate);

$startdate = clone $date;
$startdate->modify('-1 Sunday');

$enddate = clone $date;
$enddate->modify('+1 Saturday');

echo $startdate->format('Y-m-d').' => '.$enddate->format('Y-m-d');
于 2013-08-12T21:10:44.023 回答
0

我认为您正在寻找last sundayand next saturday,而不是-1 sundayand+1 saturday 然后我会将它们包装到函数中,这是上周日的示例:

function lastSunday($ts=time(), $weeksApart=1){
  if(date('N', $ts) == 7){
    $time = $ts;
  } else{
    $time = strtotime('last sunday', $ts);
  }
  return date('Y-m-d', strtotime('+'.$weeksApart.' weeks', $ts));
}
于 2013-08-12T21:09:29.243 回答