Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > อยากทราบวิธีแบ่ง Week ของแต่ละเดือนครับ ผมทำออกมาแล้วมันไม่ถูกต้องครับ



 

อยากทราบวิธีแบ่ง Week ของแต่ละเดือนครับ ผมทำออกมาแล้วมันไม่ถูกต้องครับ

 



Topic : 124221



โพสกระทู้ ( 84 )
บทความ ( 0 )



สถานะออฟไลน์




ให้เว็บเราเลือก "เดือน" และ "ปี"

เช่นใส่ เดือน 8 ปี 2016

แล้วข้อมูลจะแสดงวันที่ออกมาดังนี้ครับ

week 1 ของเดือน 2016-08-01 2016-09-04
week 2 ของเดือน 2016-09-05 2016-09-11
week 3 ของเดือน 2016-09-12 2016-09-18
week 4 ของเดือน 2016-09-19 2016-09-25
week 5 ของเดือน 2016-09-26 2016-09-30


แต่ผมลองใช้ code นี้ครับ ใส่เป็น Week Number แล้วมันออกมาเพี้ยนๆ อย่างนี้ครับ
Code (PHP)
echo "<br><br>week 1 ของเดือน".date('Y-m-d',strtotime('2016W35'))." ".date('Y-m-d',strtotime('2016W36')-1);
echo "<br><br>week 2 ของเดือน".date('Y-m-d',strtotime('2016W36'))." ".date('Y-m-d',strtotime('2016W37')-1);
echo "<br><br>week 3 ของเดือน".date('Y-m-d',strtotime('2016W37'))." ".date('Y-m-d',strtotime('2016W38')-1);
echo "<br><br>week 4 ของเดือน".date('Y-m-d',strtotime('2016W38'))." ".date('Y-m-d',strtotime('2016W39')-1);
echo "<br><br>week 5 ของเดือน".date('Y-m-d',strtotime('2016W39'))." ".date('Y-m-d',strtotime('2016W40')-1);


week 1 ของเดือน 2016-08-29 2016-09-04
week 2 ของเดือน 2016-09-05 2016-09-11
week 3 ของเดือน 2016-09-12 2016-09-18
week 4 ของเดือน 2016-09-19 2016-09-25
week 5 ของเดือน 2016-09-26 2016-10-02

มันดันแสดงตอนต้นเดือน กับปลายเดือนเพี้ยนครับ มันนับข้ามเดือน



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-08-11 09:18:36 By : zoberranger View : 1692 Reply : 4
 

 

No. 1



โพสกระทู้ ( 5,149 )
บทความ ( 26 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ลองโค้ดนี้ดูครับ


Code (PHP)
	 <?php
function getFullWeeksOfMonth($iYear, $iMonth, $sFirstDayOfWeek = 'Sunday', $bExclusive = true) {
	$iYear = filter_var($iYear, FILTER_VALIDATE_INT, array(
		'options' => array(
			'default' => (int) date('Y'),
		),
	));
	$iMonth = filter_var($iMonth, FILTER_VALIDATE_REGEXP, array(
		'options' => array(
			'default' => (int) date('m'),
			'regexp' => '/^([1-9]|1[012])$/',
		),
	));
	$aDay = array('monday' => 1, 'sunday' => 1);
	$sFirstDayOfWeek = filter_var($sFirstDayOfWeek, FILTER_VALIDATE_REGEXP, array(
		'options' => array(
			'default' => 'monday',
			'regexp' => '/^monday|sunday$/',
		),
	));
	$bExclusive = filter_var($bExclusive, FILTER_VALIDATE_BOOLEAN);
	$oStart = new DateTime($iYear . '-' . $iMonth . '-01');

	if ($bExclusive === true || ($bExclusive === false || isset($aDay[strtolower($oStart->format('l'))]))) {
		if ((int) $oStart->format('d') === 1) {
			$oStart->modify('-1 day');
		}
		$oStart->modify('first ' . $sFirstDayOfWeek . ' ' . $oStart->format('H:i'));
	} else {
		$oStart->modify('last ' . $sFirstDayOfWeek . ' ' . $oStart->format('H:i'));
	}

	$oEnd = clone ($oStart);
	if ((int) $oStart->format('m') === $iMonth) {
		$oEnd->modify('last day of this month');
	} else {
		$oEnd->modify('last day of next month');
	}

	$oInterval = new DateInterval('P1W7D');
	$oDaterange = new DatePeriod($oStart, $oInterval, $oEnd);

	$aDate = array();
	$i = 1;
	foreach ($oDaterange as $oDate) {
		$oTestDate = clone $oDate;
		$oLastWeekDay = $oTestDate->modify('+6 days');
		if (
			((int) $oDate->format('m') === (int) $iMonth || (int) $oLastWeekDay->format('m') === (int) $iMonth) &&
			(($bExclusive === true && (int) $oLastWeekDay->format('m') === (int) $iMonth) ||
				($bExclusive === false))
		) {
			$aDate[$i]['First'] = $oDate->format('Y-m-d');
			$aDate[$i]['Last'] = $oLastWeekDay->format('Y-m-d');
		}
		$i++;
	}
	return $aDate;
}
echo "<pre>";
print_r(getFullWeeksOfMonth(date('Y'), date('m')));
echo "</pre>";
?>









ประวัติการแก้ไข
2016-08-15 23:50:34
2016-08-15 23:51:05
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-08-15 23:49:56 By : deawx
 


 

No. 2



โพสกระทู้ ( 84 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณครับผม แต่ Week สุดท้าย มันไม่ออกครับ

Code (PHP)
Array
(
    [1] => Array
        (
            [First] => 2016-08-01
            [Last] => 2016-08-07
        )

    [2] => Array
        (
            [First] => 2016-08-08
            [Last] => 2016-08-14
        )

    [3] => Array
        (
            [First] => 2016-08-15
            [Last] => 2016-08-21
        )

    [4] => Array
        (
            [First] => 2016-08-22
            [Last] => 2016-08-28
        )

)



ประวัติการแก้ไข
2016-08-21 13:18:38
2016-08-21 13:19:24
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-08-20 14:27:13 By : zoberranger
 

 

No. 3



โพสกระทู้ ( 411 )
บทความ ( 0 )



สถานะออฟไลน์


http://php.net/manual/en/function.date.php
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-08-21 16:58:00 By : goragod
 


 

No. 4



โพสกระทู้ ( 5,149 )
บทความ ( 26 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ก็ออกครบนะครับ วีคสุดท้ายของเดือน 8 มันเป็ น week แรกของเดือนถัดไปไม่ใช่หรือ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-08-22 12:32:48 By : deawx
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : อยากทราบวิธีแบ่ง Week ของแต่ละเดือนครับ ผมทำออกมาแล้วมันไม่ถูกต้องครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่