从当前星期一开始,获得涵盖2个工作周的日期范围

时间:2010-11-29 22:13:11

标签: php datetime

我无法在PHP中调整周范围 我有工作来显示星期一开始的当前工作周 所以本周它显示11/29/2010 - 12/03/2010。

我需要将其修改为从当前工作周的星期一以及星期一的两个星期五的节目和结束日期开始。

因此,例如,目前它将显示开始日期为2010年11月29日,结束日期为12/10/2010。

这是我的代码

<?
$timestamp = time();
echo date("m/d/Y", strtotime("this monday", $timestamp));
echo " - ";
echo date("m/d/Y", strtotime("Next Friday", $timestamp));
?>

如何将+7添加到“下周五”

THX

3 个答案:

答案 0 :(得分:1)

而不是strtotime("Next Friday", $timestamp)执行strtotime("Next Friday", $timestamp) + 60*60*24*7(添加一周内的秒数)。

答案 1 :(得分:1)

刚才意识到“上一个星期一”仅适用于当天是星期二或晚些时候...但它是你的出发点..

<?php
    $monday = date('m/d/Y', strtotime("previous monday"));
    $friday = date('m/d/Y', strtotime($monday . " + 11 days"));
    echo $monday . ' - ' . $friday ;
?>

答案 2 :(得分:1)

您无法使用this monday来构建日期时间,
因为它在星期一过去了,它将在下周一返回

这是我的建议

<?
$current_wkday = date('N', time());
switch ($current_wkday)
{
  /* assuming on sunday, get next monday */
  case 0:  $this_monday = strtotime('+1 day'); break;
  case 1:  $this_monday = time(); break;
  default: $this_monday = strtotime('-'.($current_wkday-1).'day'); break;
}

echo date("m/d/Y", $this_monday); /* 11days = 7+(5-1) */
echo " - ";
echo date("m/d/Y", $this_monday+(86400*11));
?>