首页 > 解决方案 > 在给定日期时获取工作周的第一天和最后一天

问题描述

当我给出一个日期时,我试图得到一周的第一天(星期一)和工作周的最后一天(星期五)。通常给出的日期是星期一的日期,但也有例外。

给出的日期例如是 2019-04-18。这里工作周的最后一天是 2019-4-19,第一天是 2019-4-15。我在 laravel 工作,想在刀片模板中使用它,所以如果可能的话,我想尽可能用一行代码来做。

我能够得到工作周的最后一天,但第一天仍然有问题。我也不确定我得到最后一天的方式是最好的。

{{ date("d-m-Y", strtotime(date('Y-m-d', strtotime(($overtime->workdate). ' + '.(5-date('w', strtotime($overtime->workdate))).' days')))) }}

给出的答案的问题是我试图在刀片模板中的一行中得到它,所以我无法制作新的 DateTime 或其他东西。它以给出日期的字符串开头。

标签: phpdatelaravel-blade

解决方案


你可以使用碳来实现这一点,

$date = new Carbon('2019-04-18'); // 

// To get the first week of the day we can do this
echo $date->startOfWeek(); // 2019-04-15
echo $date->endOfWeek(); // 2019-04-19

如果你不知道 Carbon,这里有帮助你的文档。


推荐阅读