簡體   English   中英

碳獲取實際月份和星期的天數

[英]Carbon get number of days in actual month and week

我正在嘗試將一周中的所有當前天數和本月的所有當前天數收集到一個數組中。 這應該很容易,但是盡管我搜索了很多,但我找不到解決方案。 例如把今天作為一天,我需要的結果是這樣的:

$daysInWeek = [31,1,2,3,4,5,6];
$daysInMonth = [1,2,3,4,5,6,7,...,28];//Note here that are febrary, and need to return 28, not 31

我寫了這段代碼,但我認為 Carbon 可以使它更容易:

        $weekStartDate = Carbon::now()->startOfWeek();       
        $monthStartDate = Carbon::now()->startOfMonth();

        $daysInWeek[] = $weekStartDate->day;
        for ($i=0; $i < 6; $i++) { 
            $daysInWeek[] = $weekStartDate->addDay(1)->day;
        }
        $daysInMonth[] = $monthStartDate->day;
        $lastMonthDay = Carbon::now()->month()->daysInMonth; //This return 31 days, not 28.
        for ($i=0; $i < $lastMonthDay-1; $i++) { 
            $daysInMonth[] = $monthStartDate->addDay(1)->day;
        }    

根據周數計算天數,請在此處查看給定周數的情況下計算一周中的天數

使用date_createdate_diff function 更容易按月獲取天數

例如:

<?php

$d1 = date_create(date('Y').'-'.date('m').'-01'); //current month/year
$d2 = date_create($d1->format('Y-m-t')); //get last date of the month

$days = date_diff($d1,$d2);

echo "Number of days: ". $days->days+1; //+1 for the first day

知道天數后,您現在可以為 ex 創建必要的數組:

<?php

$days_arr = [];
$d = 1;
do{
    $days_arr[] = $d;
    $d++;
}while ($d <= $days->days+1);

print_r($days_arr);

暫無
暫無

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

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