Rumah > Soal Jawab > teks badan
Bagaimana untuk mendapatkan bilangan hari untuk 2 atau lebih julat tarikh yang berpotensi bertindih (CarbonPeriod)?
$startDate_1 = '2022-12-01'; $endDate_1 = '2022-12-10'; $startDate_2 = '2022-12-06'; $endDate_2 = '2022-12-15'; $startDate_3 = '2022-12-21'; $endDate_3 = '2022-12-25'; $dateRange_1 = CarbonPeriod::create($startDate_1, $endDate_1); $dateRange_2 = CarbonPeriod::create($startDate_2, $endDate_2); $dateRange_3 = CarbonPeriod::create($startDate_3, $endDate_3);
Sebagai contoh, seperti yang ditunjukkan di atas, saya mempunyai 3 julat tarikh. Saya perlu mendapatkan jumlah bilangan hari tidak bertindih dalam kesemua 3 julat tarikh. Dalam contoh ini, ia akan menjadi 20 hari. Adakah terdapat kaedah terbina dalam Carbon/CarbonPeriod untuk mencapai ini?
P粉4751269412023-09-10 10:41:19
Anda hanya boleh menggabungkan dan menyahduakannya.
$startDate_1 = '2022-12-01'; $endDate_1 = '2022-12-10'; $startDate_2 = '2022-12-06'; $endDate_2 = '2022-12-15'; $startDate_3 = '2022-12-21'; $endDate_3 = '2022-12-25'; $dateRange_1 = CarbonPeriod::create($startDate_1, $endDate_1); $dateRange_2 = CarbonPeriod::create($startDate_2, $endDate_2); $dateRange_3 = CarbonPeriod::create($startDate_3, $endDate_3); // 20个日期,只包含没有重复的日期。 $uniqueDays = array_unique(array_merge($dateRange_1->toArray(), $dateRange_2->toArray(), $dateRange_3->toArray()));