如何计算去年同一周的特定日期?

时间:2012-05-25 09:44:04

标签: php date

我知道关于SO的大量日期问题,但我对此感到困惑。

我需要运行一些报告,为了做到这一点,我需要确定一些日期。

报告将在星期一进行,我需要计算出星期一和星期六之前的星期日日期。

e.g。该报告将于5月28日星期一举行,我需要的日期是5月20日星期日和5月26日星期六。

然后我需要相同的值,但前一周,所以5月13日星期日和5月19日星期六。

我认为这部分会很好,因为它只是在报告运行时获取星期一的当前日期并从那里操纵它。

那么最后,我无法解决的部分是我提到的第一周,我需要去年的相应日期,所以周日和周六的日期从同一周的数字开始在去年。

我知道日期功能可以为您提供周数,但无法查看如何计算该周的星期日和上周六的日期。

这就是我所拥有的,原谅OTT变量名称:

$today     = date('Y/m/d');

// reports run on a Monday and use last Sunday and the following Saturday's date so get yesterday's date first
$yesterday = strtotime ('-1 day', strtotime($today));
$yesterday = date ('Y/m/d', $yesterday);

// start of week (last Sunday)
$start_of_last_week       = strtotime ('-1 week', strtotime($yesterday));
$start_of_last_week       = date ('Y/m/d', $start_of_last_week);

// end of last week (the following Saturday)
$end_of_last_week       = strtotime ('+ 6 days', strtotime($start_of_last_week));
$end_of_last_week       = date ('Y/m/d', $end_of_last_week;

// start of previous week
$start_of_previous_week       = strtotime ('-1 week', strtotime($start_of_last_week));
$start_of_previous_week       = date ('Y/m/d', $start_of_previous_week);

// end of previous week
$end_of_previous_week       = strtotime ('+ 6 days', strtotime($start_of_previous_week));
$end_of_previous_week       = date ('Y/m/d', previous;



// the start of the same week last year
$start_of_last_week_last_year = strtotime ('-1 year', strtotime($start_of_last_week ));

但上述情况并不正确,因此不确定下一步该做什么。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您可以找到特定年份的星期一和星期的日期

date( 'Y-m-d', strtotime( '2012W21' )); //2011-05-23

Compound Date Formats