Laravel Carbon获得本周开始+结束

m2xkgtsf  于 2022-12-01  发布在  其他
关注(0)|答案(5)|浏览(378)

我正在和Laravel 4一起开发一个工具,在Facebook上发布/安排餐厅菜单。为此,我需要一个本周的日期选择器,总是从周一开始,总是在周日结束。
Wireframe for restaurant menu
我已经试过了www.example.com的例子http://carbon.nesbot.com/docs/#api-getters,但没有成功。
你知道吗?

lqfhib0f

lqfhib0f1#

使用Carbon Library这非常简单。下面是代码示例:

$now = Carbon::now();
$weekStartDate = $now->startOfWeek()->format('Y-m-d H:i');
$weekEndDate = $now->endOfWeek()->format('Y-m-d H:i');

甚至你可以选择改变一周的开始和结束日期。是这样的,

$start = $now->startOfWeek(Carbon::TUESDAY);
$end = $now->endOfWeek(Carbon::MONDAY);

来源:https://carbon.nesbot.com/docs/#api-getters

wnavrhmk

wnavrhmk2#

最好的方法是使用jquery插件
http://api.jqueryui.com/datepicker/
在您的view.blade.php make输入字段中

<input type="text" id="in">

在脚本文件中选择此输入并设置日期范围

<script>
        $("#in").datepicker({
            minDate: new Date("{{Carbon\Carbon::now()->startOfWeek()->format('Y/m/d')}}"),
            maxDate: new Date("{{Carbon\Carbon::now()->endOfWeek()->format('Y/m/d')}}")
        });
</script>

应该是这样的
http://imgur.com/K0ZhiVy

kupeojn6

kupeojn63#

这将为您提供一周的开始时间(星期一)到结束时间(星期日)。
不知道这是否是服务器上的设置。(有些人把第一周放在星期日)

private $start;
private $end;

public function setWeekPeriod($weeknumber)
{
    $week_start = (new DateTime())->setISODate(date("Y"),$weeknumber)->format("Y-m-d H:i:s");

    $this->start = Carbon::createFromFormat("Y-m-d H:i:s", $week_start);
    $this->start->hour(0)->minute(0)->second(0);
    $this->end = $this->start->copy()->endOfWeek();
}
jgovgodb

jgovgodb4#

请注意,如果您希望开始日期保持为一周的开始,则需要使用CarbonImmutable。(另外,它不是“Laravel Carbon”,而是Carbon)

$now = CarbonImmutable::now();
$weekStartDate = $now->startOfWeek();
$weekEndDate = $now->endOfWeek();
vyu0f0g1

vyu0f0g15#

对我来说很好。

$now = now();
$weekStartDate = $now->copy()->startOfWeek()->format('Y-m-d');
$weekEndDate = $now->copy()->endOfWeek()->format('Y-m-d');

相关问题