获取给定日期PHP的一周的第一天日期

时间:2017-04-18 14:03:38

标签: php symfony date

我有一个约会2015-12-16

我想知道我当前一周的第一天的日期

这里2015-12-16是在一年的第51周,然后我想得到第51天的第一天的日期(2015-12-14在这里)

我怎么能这样做? 谢谢

编辑:当一年有53周时(例如2015年),它必须有效。

3 个答案:

答案 0 :(得分:3)

您可以执行以下操作:

 $dateTime = new DateTime("2015-12-16");

 $weekNo = $dateTime->format("W");

 $newDate = new DateTime();
 $newDate->setISODate($dateTime->format("Y"), $weekNo);

示例:

http://sandbox.onlinephpfunctions.com/code/281a1ac298bfee8be421e333e4b7e92c6bb44d65

由于在某些情况下上述情况有点偏差,因此更可靠:

 $dateTime = new DateTime("2016-01-01");
 $dateTime->sub(new DateInterval("P".($dateTime->format("w")-1)."D"));  //Since the weekdays are 1-based.

实施例: http://sandbox.onlinephpfunctions.com/code/c5cb0f077fa77974d977ddbffa6bc0b61f9d7851

答案 1 :(得分:0)

$date = new \DateTime('2015-12-16');
echo $date->modify('last sunday +1 day')->format('Y-m-d');

如果算上星期一到星期天,这将在本周开始。

答案 2 :(得分:0)

尝试一下:

date('Y-m-d', strtotime('This week', strtotime('2015-12-16')));