【发布时间】:2018-11-30 12:22:42
【问题描述】:
您好,我正在尝试构建一个应用程序,从今天开始绘制过去 7 天的图表,并且我正在使用 Laravel 5 - Carbon\Carbon 日期包.. 所以如果今天是星期三,它会在星期二结束 如果今天是星期五,它将在下周星期四结束
$now = Carbon::now();
$ar = [];
for($i=1; $i<7; $i++){
array_push($ar, $now->subDays($i));
}
pr($ar, true);
其中 pr() 是一个类似于 dd() 的辅助函数,我用一种简单的方式写了只是死转储,但我得到了这个输出,第一个问题是,记住今天是 - 星期五, 2018年11月30日,2018-11-30
Array(
[0] => Carbon\Carbon Object
(
[date] => 2018-11-09 12:23:53.793501
[timezone_type] => 3
[timezone] => UTC
)
[1] => Carbon\Carbon Object
(
[date] => 2018-11-09 12:23:53.793501
[timezone_type] => 3
[timezone] => UTC
)
[2] => Carbon\Carbon Object
(
[date] => 2018-11-09 12:23:53.793501
[timezone_type] => 3
[timezone] => UTC
)
[3] => Carbon\Carbon Object
(
[date] => 2018-11-09 12:23:53.793501
[timezone_type] => 3
[timezone] => UTC
)
[4] => Carbon\Carbon Object
(
[date] => 2018-11-09 12:23:53.793501
[timezone_type] => 3
[timezone] => UTC
)
[5] => Carbon\Carbon Object
(
[date] => 2018-11-09 12:23:53.793501
[timezone_type] => 3
[timezone] => UTC
)
它应该持续到 29 日、28 日、27 日,但它可以追溯到 11 月 9 日,甚至没有顺序,比如 09、08、07、06,只是 11 月 09 日,我不知道我是什么弄错了,求帮助,谢谢。
【问题讨论】:
-
我相信您已经有了答案,但作为旁注,您使用循环计数器 $i 减去您发布的代码中的天数;实际上,这意味着您从日期对象中减去 1 天,然后第二次从同一个日期对象中减去 2 天,然后是 3 天,等等。这就是为什么您最终得到日期 1+2+3+4+ 5+6 = 过去 21 天。
标签: php laravel php-carbon