簡體   English   中英

使用碳查找一周中的每一天 [1st,2nd,3rd] 對於接下來的 15 天

[英]Find every [ 1st,2nd,3rd ] day of week using carbon For next 15 day

使用carbon在接下來的 15 天中查找每個 [1st,2nd,3rd] 天的日期。

Carbon中有沒有類似momentjs的方法

下面展示了使用momentjs的相同示例。

momementObj.recur().every([1, 2, 3, 4, 5]).daysOfWeek();

我認為您需要這部分文檔: https://carbon.nesbot.com/docs/#api-week

以一周為例:

$en = CarbonImmutable::parse('2017-02-05');
var_dump($en->week(1)->format('Y-m-d H:i')); //string(16) "2017-01-01 00:00"
var_dump($en->week(6)->format('Y-m-d H:i')); //string(16) "2017-01-06 00:00"

檢查文檔是否清楚,如果您需要進一步說明,請發表評論。

工作日 go 從 0 到 6

我不認為 Carbon 具有開箱即用的功能,但使用像這樣的出色工具,您可以使用CarbonPeriod來實現這一點,請參閱: https://carbon.nesbot.com/docs/#api-period 你可以得到這樣的結果:

use Carbon\CarbonPeriod;
...

function dateInRange(array $days_of_week = [1,2,3], int $in_days = 15)
{
    $days = CarbonPeriod::create(Carbon::now(), Carbon::now()->addDay($in_days));

    $result = [];
    /**
     * @var Carbon $carbon
     */
    foreach ($days as $carbon) { //This is an iterator
        if (in_array($carbon->dayOfWeek, $days_of_week, true)) {
            $result[] = $carbon->format('Y-m-d D');
        }
    }

    return $result;
}
  • $days給你碳周期,它是一個Iterator
  • 允許您遍歷兩個日期之間的每個“期間”
  • 然后在填充初始數組時迭代它們時進行檢查
  • 您可以簡單地將$carbon作為循環內的 Carbon 實例返回,而不是對其進行格式化(我只是為了演示它返回星期幾)

PS:默認情況下,在 Carbon 中 0 是星期日,1 是星期一……以此類推。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM