สอบถามเรื่องการวนลูปวันที่หน่อยครับ

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

สอบถามเรื่องการวนลูปวันที่หน่อยครับ
date_start = 2016-01-11 2016-01-11 2016-01-11 2016-01-12 2016-01-12 2016-01-12 2016-01-13 2016-01-13 2016-01-13 2016-01-14 2016-01-14 2016-01-15 2016-01-15 2016-01-16 2016-01-16
end_date = 2016-05-06
คือผมต้องให้ข้อมูลในตัวแปร date_start วนลูป บวกที่ละ 7 วัน จะถึง วันที่ ในตัวแปร end_date 
ช่วยแนะนำหน่อยครับ ขอบคุณครับ


Mousemouse Taweeporn 07-07-2016 23:06:33

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

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


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


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

 ความคิดเห็นที่ 1


ninenik 07-07-2016
 ความคิดเห็นที่ 2
Set timezone
date_default_timezone_set('UTC');
 
 // Start date
$date = '2016-01-11';
 // End date
 $end_date = '2016-05-06';
 
 while (strtotime($date) <= strtotime($end_date)) {
echo "$daten";
$date = date ("Y-m-d", strtotime("+7 day", strtotime($date)));


คือผมอยากได้ประมาณนี้  แต่ตัวแปร start date ของผมมันมีหลายค่า เลยไม่รู้จะวนลูปยังไงครับ
พอจะเข้าใจป่าวครับ


Mousemouse Taweeporn 07-07-2016 23:36
 ความคิดเห็นที่ 3
  รูปแบบก็น่าจะประมาณนั้น ส่วนคำถาม ไม่เข้าใจ


ninenik 07-07-2016
 ความคิดเห็นที่ 4

date_start = 2016-01-11 2016-01-11 2016-01-11 2016-01-12 2016-01-12 2016-01-12 2016-01-13 2016-01-13 2016-01-13 2016-01-14 2016-01-14 2016-01-15 2016-01-15 2016-01-16 2016-01-16

end_date = 2016-05-06

ค่าข้อมูลในตัวแปร date_star  บวกเพิ่มไปทีละ 7 วัน จนถึงวันที่ ในตัวแปร end_date 
อยากจะรู้ว่ามีทั้งหมดกี่วันครับ



Mousemouse Taweeporn 08-07-2016 00:24
 ความคิดเห็นที่ 5
ลองเอาโค้ดนี้ไปประยุกต์ดูเป็นแนวทาง

<?php
$start_date=array("2016-05-01","2016-05-30");
$end_date="2016-08-05"; 
foreach($start_date as $date1){
	$datetime1 = new DateTime($date1);  
	$datetime2 = new DateTime($end_date);  
	$v=0;
	while($datetime1<=$datetime2){
		$v++;
		echo $date1."<br>";		
		$date1 = date("Y-m-d",strtotime($date1." +7 day"));
		$datetime1 = new DateTime($date1);  
	}
	echo $v."<hr>";
}
?>


ninenik 08-07-2016
 ความคิดเห็นที่ 6
$date_start = "2016-01-11 2016-01-11 2016-01-11 2016-01-12 2016-01-12 2016-01-12 2016-01-13 2016-01-13 2016-01-13 2016-01-14 2016-01-14 2016-01-15 2016-01-15 2016-01-16 2016-01-16";

คือว่าข้อมูล 
$date_start ผมดึงมาจากฐานข้อมูล ผมจะแปลงเป็น array ยังไงครับ

ผมโง่จริงๆ รบกวนหน่อยนะครับ
ขอบคุณครับ



mouse55 08-07-2016 15:52
 ความคิดเห็นที่ 7
$date_start = explode(" ",$date_start);


Suthee Khongnapha 08-07-2016 16:07
 ความคิดเห็นที่ 8
ขอถามหน่อยครับ ถ้าข้อมูลมันติดกันหมดเลย
เช่น  $date_start = "2016-01-112016-01-112016-01-112016-01-12";
ต้องใช้ฟังก์ชันอะไรครับ


mouse55 08-07-2016 17:00
 ความคิดเห็นที่ 9
$date_start = "2016-01-112016-01-112016-01-112016-01-12";
$start_date = str_split($date_start, 10);


ninenik 08-07-2016
 ความคิดเห็นที่ 10
อ่อ ขอบคุณ ทุกท่านเลยนะครับ


mouse55 08-07-2016 19:32
1






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