จำนวนสัปดาห์ของแต่ละเดือนไม่ตรงจำนวนสัปดาห์ทั้งปี

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา จำนวนสัปดาห์ของแต่ละเดือนไม่ตรงจำนวนสัปดาห์ทั้งปี

จำนวนสัปดาห์ของแต่ละเดือนไม่ตรงจำนวนสัปดาห์ทั้งปี
ช่วยแนะนำหน่อยครับว่าทำไหมสัปดาห์ของเดือนถึงไม่เท่ากับ 53 รวมกันแต่ละเดือนได้ 62 ครับ 

";

 // แสดงผลลัพธ์

 foreach ($weeks_in_each_month as $month => $weeks) {
     echo "เดือน $month มี $weeks สัปดาห์ 
"; } ?>
ค่าที่ออกมาครับ
จำนวนสัปดาห์ 53
เดือน 1 มี 5 สัปดาห์
เดือน 2 มี 5 สัปดาห์
เดือน 3 มี 5 สัปดาห์
เดือน 4 มี 5 สัปดาห์
เดือน 5 มี 5 สัปดาห์
เดือน 6 มี 5 สัปดาห์
เดือน 7 มี 5 สัปดาห์
เดือน 8 มี 5 สัปดาห์
เดือน 9 มี 6 สัปดาห์
เดือน 10 มี 5 สัปดาห์
เดือน 11 มี 5 สัปดาห์
เดือน 12 มี 6 สัปดาห์
 


Takabe 08-02-2024 15:12:53

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
1 ปีมี  365 ถึง 366 วัน คิดเป็นทั้งหมด 52 สัปดาห์
หรือก็คือเอา 365 หาร 7 
แต่เราไม่สามารถหาสัปดาห์แต่ละเดือนแบบนั้น แล้วมาบวกสัปดาห์ให้ครบ 1 ปี
จะไม่ตรงกัน เพราะลำดับสัปดาห์ของ 1 ปี จะมีการคาบเกี่ยวกันของสองเดือน


>>>  อัพเดท >>> 08-02-2024
------------------------------------------
// วันสุดท้ายของแต่ละเดือนตรงกับสัปดาห์ที่เท่าไหร่
for($month=1;$month<=12;$month++){
	$last_day_of_month = date("Y-m-t",strtotime(date("Y")."-".$month."-01"));
	echo $last_day_of_month."<br>";  // วันสุดท้ายของเดือน
	echo date("W",strtotime($last_day_of_month))."<br>"; // สัปดาห์ของวันสุดท้าย
} 

// วันแรกของเดือนตรงกับสัปดาห์ที่เท่าไหร่
for($month=1;$month<=12;$month++){
	$first_date_of_month = date("Y-m-d",strtotime(date("Y")."-".$month."-01"));
	echo $first_date_of_month."<br>"; // วันแรกของเดือน
	echo date("W",strtotime($first_date_of_month))."<br>"; // ตรงกับสัปดาห์ที่
}  

// ฟังก์ชั่นหาวันแรก และวันสุดท้ายของสัปดาห์โดยใช้ปี กับสัปดาห์ที่ต้องการ
function getStartAndEndDate($week, $year) {
  $dto = new DateTime();
  $dto->setISODate($year, $week);
  $ret['week_start'] = $dto->format('Y-m-d');
  $dto->modify('+6 days');
  $ret['week_end'] = $dto->format('Y-m-d');
  return $ret;
}

$week_array = getStartAndEndDate(52,2023);
print_r($week_array);


บทความแนะนำที่เกี่ยวข้อง
การสร้างวันเวลาปัจจุบัน ด้วยฟังก์ชัน date()อ่าน 37,635
การใช้งานรูปแบบข้อความวันที่และเวลา กับฟังก์ชั่น strtotime() ใน phpอ่าน 55,267
การจัดการวันที่และเวลาโดยใช้ DateTime ใน phpอ่าน 9,826
ninenik 08-02-2024






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ