如何恢复星期一的开始

时间:2014-05-12 13:34:32

标签: php date

我有这行代码

$date=new \DateTime('now');

从那天起,我需要在本周开始时恢复星期一的日期。

例如,当$date=14_05_2014 19:12:20(2014年5月14日)时,我需要一个具有相应星期一值的变量:$n=12_05_2014 08:00:00(2014年5月12日)。

1 个答案:

答案 0 :(得分:1)

鉴于PHP中强大的日期/时间功能,这很容易:

$now = new \DateTime('now');

# "1" means "Monday", you could improve this by detecting localized settings
$daysToMove = (int)($now->format('N')) - 1; // 

# How many days to subtract?
if ($daysToMove){
    $now->sub(new \DateInterval('P' . $daysToMove . 'D'));
}

echo "Start of the week: " . $now->format('Y-m-d');

简单说明:

  1. 您计算一周中的当前日期。该值可以在1..7范围内。
  2. 由于星期一是1,因此从计算出的数字中减去1
  3. 如果得到的数字大于0(意思是“今天不是星期一”),请创建DateInterval并从当前日期减去它。
  4. 您可以找到有关DateTimeDateInterval类的更多信息:here。寻找Examples部分......

    PHP date()date

    PHP DateTime(OOP变体):DateTime