我希望使用Carbon获得一年的所有星期四,并将其保存在数据库中。
到目前为止,我只能存储当月的星期四。请告诉我如何使它成为一年一次。当前代码:
<svg width="100px" height="150px">
<g>
<linearGradient id="a" gradientUnits="userSpaceOnUse" x1="2125.9858">
</linearGradient>
</g>
</svg>
答案 0 :(得分:1)
您可以首先使用WEEKS_PER_YEAR
获取每年的周数,例如:
$weeks_per_year = Carbon::WEEKS_PER_YEAR;
之后使用以下内容获得第一个星期四:
$first_thursday = Carbon::parse("first thursday of this year");
然后循环使用碳功能 addWeeks(1)每周一次添加每周,以获得下周的星期四,所以:
for($i=1;$i<$weeks_per_year;$i++)
{
array_push( $thursdays, $first_thursday->addWeeks(1)->toDateString() );
}
完整代码:
$weeks_per_year = Carbon::WEEKS_PER_YEAR;
$first_thursday = Carbon::parse("first thursday of this year");
$thursdays = [$first_thursday->toDateString()];
for($i=1;$i<$weeks_per_year;$i++)
{
array_push( $thursdays, $first_thursday->addWeeks(1)->toDateString() );
}
输出
按照以下格式yyyy-mm-dd
:
["2016-01-07","2016-01-14","2016-01-21", ... ,"2016-12-29"]
或者您可以直接在您的数据库中存储日期,而不是返回如下数组:
for($i=1; $i<$weeks_per_year;$i++){
$Weeks = new Week();
$Weeks->week_starting_date = $first_thursday->addWeeks(1)->toDateString();
$Weeks->save();
}
希望这有帮助。