Php 如何从当前日期开始计算一周的第一天

Php 如何从当前日期开始计算一周的第一天,php,date,logic,Php,Date,Logic,我想知道一周的第一天吗? 即 很抱歉误导您,使问题混淆 我只想知道一周的第一天的日期,即1或7或14或21或28</p>< P>如果你认为星期一是第一天的< /P> echo date('Y-m-d',strtotime("last monday", strtotime('tomorrow',strtotime($date)))); 你可以在一天中的任何一天替换星期一。 echo date('Y-m-d',strtotime("last monday", strtotime('tomorrow

我想知道一周的第一天吗?

很抱歉误导您,使问题混淆


我只想知道一周的第一天的日期,即1或7或14或21或28</p>< P>如果你认为星期一是第一天的< /P>
echo date('Y-m-d',strtotime("last monday", strtotime('tomorrow',strtotime($date))));

你可以在一天中的任何一天替换<代码>星期一<代码>。
echo date('Y-m-d',strtotime("last monday", strtotime('tomorrow',strtotime($date))));
$wk_day=date('w');
switch ($wk_day)
{
  case 0:  $diff = -1;        break;
  case 1:  $diff = 0;         break;
  default :$diff = $wk_day-1; break;
}
echo date('Y-m-d', time()-(86400*$diff));
您可以将
星期一
替换为一周中的任何一天

$wk_day=date('w');
switch ($wk_day)
{
  case 0:  $diff = -1;        break;
  case 1:  $diff = 0;         break;
  default :$diff = $wk_day-1; break;
}
echo date('Y-m-d', time()-(86400*$diff));
您可以从$weeks_first_day获得周首日,您还可以更改格式

这里星期天是开始日期

您可以从$weeks_first_day获得周首日,您还可以更改格式


这里星期天是开始日期

到目前为止,最直接的方法是从日期减去一周中的天数(0=星期天,表示
'w'
,1=星期一,表示
'N'
):

$date = strtotime('2011-02-09');
$sunday = strtotime('-' . date('w', $date) . ' days', $date);
$monday = strtotime('-' . (date('N', $date) - 1) . ' days', $date);

到目前为止,最直接的方法是从日期开始减去一周中的天数(0=周日,表示
'w'
,1=周一,表示
'N'
):

$date = strtotime('2011-02-09');
$sunday = strtotime('-' . date('w', $date) . ' days', $date);
$monday = strtotime('-' . (date('N', $date) - 1) . ' days', $date);

你认为星期一或星期日是你一周的第一天吗?这将对答案产生影响。你可能的重复仍然没有正确定义“一周的第一天”。“1或7或14”没有多大意义。周不总是从1, 7, 14、21, 28开始。例如,二月一日是星期二。你认为星期一或星期日是一周的第一天吗?这将对答案产生影响。你可能的重复仍然没有正确定义“一周的第一天”。“1或7或14”没有什么意义。周不总是从1, 7, 14、21, 28开始。例如,二月一日是一个星期二。如果你把星期一当作你的第一天,那么你应该把第一行改成:<代码> $kkayDay=日期(n));代码>并且该案例应该从1开始,然后你应该相应地改变这个案例。如果你把星期一当作你的第一天,那么你应该把第一行改成:<代码> $kkayDay=日期(n));代码>案例应该从1开始,然后您应该相应地更改案例。如果今天是星期一,则案例将失败。我最好使用“明天”功能:
回显日期('Y-m-d',strotime('last monday',strotime($date))---在这种情况下,您不需要再添加一次检查。如果今天是星期一,检查将失败。我最好使用“明天”功能:
echo date('Y-m-d',strottime('last monday',strottime($date))---在这种情况下,您不需要再添加一张支票。