|
|
|
ผมงงและไม่เข้าใจมากเลยครับ เกี่ยวกับ การทำ week%7 |
|
|
|
|
|
|
|
คือว่าในกรณีของผม เวลาผมนับค่าปฏิทินของพนักงาน วันแรกวันเริ่มวันที่ 27 เดือนแรก ไปจนถึง วันที่ 26 ของอีกเดือน ทีนี้ถ้าผมจะทำ week % 7 แบ่งออกเป็น สัปดาห์ ทีนี้เกิดปัญหาว่า แสดงผมไม่ตรงกับความเป็นจริง ครับ แบบเมื่อเปรียบจากปฏิทินแล้ว ค่าวันและวันที่ไม่ตรงกัน ครับ ผมควรทำยังไง อันนี้ code ที่ผมเขียนนะครับ
ลืมบอกไปครับผมแสดงเป็น Pdf นะครับ คำถามคือผมจะทำอย่างไรให้วัน ตรงกับวันที่ ตามปฏิทินครับ ไม่รู้จะแก้ยังไง หวานผู้มีประสบการณ์และความรู้ช่วยเหลือหน่อยนะครับ
Code (PHP)
$d7=$qd[date('d')];
///////////ประกาศค่าตัวแปรเพื่อเก็บค่าวันที่
$_month="$strSearch";///รับค่าจากตัวแปลที่ส่งมาให้
if ($_month=='0')
{
$_month=date('m');///ให้เช็คด้วยว่าถ้ามีการว่างจากค่าที่ส่งมา ให้ ทำการเปลี่ยนแปลงเดือนเป็นเดือนปัจจุบัน
}
$_month_1=$_month-1;
$start = mktime(0, 0, 0,$_month_1,27,date('y'),$dateone%7);
$end = mktime(0, 0, 0,$_month,26,date('y'));
$date_second = 24*60*60;
for($d=$start; $d<=$end; $d+=$date_second)
{$coolmonth=date("$setMonth/$d/$myear");
$dateone=date('d',$d);
$J="จ."; $Ong="อัง."; $P="พ."; $Ph="พฤ."; $S="ศ."; $Sa="ส.";$Aa="อ.";
$dateonemk=($dateone%7);
$pdf->Cell(5,5,iconv("utf-8","tis-620","$dateonemk"),0,0,'C',true);
if($dateonemk=='6'){$pdf->Cell(5,5,iconv("utf-8","tis-620","$Sa"),0,0,'C',true);}
if($dateonemk=='0'){$pdf->Cell(5,5,iconv("utf-8","tis-620","$Aa"),0,0,'C',true);}
if($dateonemk=='1'){$pdf->Cell(5,5,iconv("utf-8","tis-620","$J"),0,0,'C',true);}
if($dateonemk=='2'){$pdf->Cell(5,5,iconv("utf-8","tis-620","$Ong"),0,0,'C',true);}
if($dateonemk=='3'){$pdf->Cell(5,5,iconv("utf-8","tis-620","$P"),0,0,'C',true);}
if($dateonemk=='4'){$pdf->Cell(5,5,iconv("utf-8","tis-620","$Ph"),0,0,'C',true);}
if($dateonemk=='5'){$pdf->Cell(5,5,iconv("utf-8","tis-620","$S"),0,0,'C',true);}
}
Tag : - - - -
|
|
|
|
|
|
Date :
2010-05-08 16:17:55 |
By :
SOUL |
View :
966 |
Reply :
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าจะงงกันใช่ป่าวครับ จะอธิบายเพิ่มเติมอีกนิดครับ คือ เวลาที่เราจะเขียนวันที่อะครับ เราต้องใช้วัน(จันทร์ อังคาร)ไปเลื่อยๆๆ เพื่ออ้างอิง ในการดูปฏิทินใช่ป่าวครับ แต่สิ่งที่ผมยังงงคือ แล้วท่าผมจะจับ สองสิ่งนี้มาให้อยู่ด้วยกัน โดย ทำให้สามารถอ้างวันที่ และวันได้อย่างถูกต้องผมควรทำอย่างไรครับ ขอเป็นแบบคำอธิบายก็ยังดีครับ ขอบคุณครับ
|
|
|
|
|
Date :
2010-05-10 08:46:43 |
By :
SOUL |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
601212345601234560123456012345 ค่าที่ออกมาได้แบบนี้ครับ แต่ว่าทำไมมันมีแบบเรียงแบบนี้ด้วยหรอครับ
ใช้ 6012 ทำไมมันถึงได้เป็นแบบนี้อะ ทำไมมันไม่เรียงไปเลยอะครับ มันแสดงค่าออกมาแบบงงครับแต่ผมพอจะเข้าใจนะครับว่า จ
|
|
|
|
|
Date :
2010-05-10 10:03:04 |
By :
SOUL |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมไม่รู้หรอกนะว่าโค้ดคุณทำงานอย่างไร
เพียงแต่ ขึ้นอยู่กับตรรกะ ของคุณครับ ว่าถูกต้องไหม ถ้าถูก ก็ต้องไล่โค้ดดูครับ
ปัญหาคุณอยู่ ที่โค้ดหรือตรรกกะคับ ถ้าบอกได้ก็คงจะพอช่วยเหลือได้บ้าง
และช่วยอธิบายแนวทางการคิดสัปดาห์ด้วยนะคับ ปัดเศษ ยังไง
|
|
|
|
|
Date :
2010-05-10 10:18:01 |
By :
เอี่ยว ^^ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือ ผมใช้การหารแบบปัดเศษครับ โดยการ เริ่มจากการกำหนดวันวันที่เริ่มก่อนครับ คือ ปฏิทินของผมจะเริ่มตั้งแต่วันที่ 27-26 ของอีกเดือน จะเป็นแบบนี้เสมอครับ ซึ่งผมก็ใช้จำนวนวันตรงนี้แหละครับ ในการหาสับดา เริ่มนับตั้งแต่วันที่ 27 -26ของอีกเดือน ว่ามีกี่วันแลัวหารโดยปัดเศษครับ แบบนี้อะครับต่อจากนั้นผมก็มาเที่ยบกับวัน ครับ แต่ยังงงเรื่องของตรรกะอยู่อะครับยังไงก็ช่วยอธิยาตรงเรื่องของการเปรียบวันให้หน่อยนะครับ ว่าเป็นแบบไหนอะครับ
|
|
|
|
|
Date :
2010-05-10 10:46:15 |
By :
SOUL |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คับ เทียบวัน หมายความว่าจะเทียบยังไงคับ
แล้วนับวันหยุดรวมด้วยหรือ
ปล.ไปกินข้าวก่อน
|
|
|
|
|
Date :
2010-05-10 11:06:36 |
By :
เอี่ยว ^^ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
นับวันทำงานของพนักงาน ใช่ไหมครับ
คุณนับ เสาร์ และ อาทิตย์ด้วยไหมเอ่ย
|
|
|
|
|
Date :
2010-05-10 11:07:45 |
By :
aknueng |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
นับครับนับก็คือใน นับวันทุกวันครับ เริ่มนับตั้งแต่ 27 เดือนมกราคม ถึง 26 เดือนกุมภาพันธ์ แบบเนี้ยอะครับ นับทุกวันที่มีครับ
|
|
|
|
|
Date :
2010-05-10 11:37:23 |
By :
SOUL |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
นับวัน คาดว่าคุณคงทำได้นะครับ
คือเอาเวลาวินาที แรกสุด จนท้ายสุดมาลบกัน หารจำนวนวิของวัน
จำนวน อาทิตย์ ก็หาร ด้วย 7 และ เศษ ก็ mod ด้วย 7
ส่วนเทียบวัน ผมคาดว่าคุณต้องการ เทียบว่าวันไหน มาบ้าง ไม่มาบ้าง แสดงเป็นตารางใช่ป่าว
ก็ทำวัน ตั้งแต่แรก ถึงวันสุดท้าย
และดึงข้อมูล ตรวจสอบว่ามีวันไหนบ้าง จะใช้ in_array() ก็ได้ หรือตรวจสอบแล้วใช้ array_shift() ก็ได้คับ
|
|
|
|
|
Date :
2010-05-10 11:57:15 |
By :
เอี่ยว ^^ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แต่ผมลองทำแล้วนะคับ แต่สิ่งที่ได้มาคือ
6 0 1 2 1 2 3 4 5 6 0 1 2 3 4 5 6 0 1 2 3 4 5 6 0 1 2 3 4 5 ผมลองเปรียบเที่ยบค่าแล้ว ค่าที่ได้ยังไม่ถูกต้องครับ
นี่คือ code นะครับ
Code (PHP)
<? $_month_1=$_month-1;
$start = mktime(0, 0, 0,$_month_1,27,date('y'));
$end = mktime(0, 0, 0,$_month,26,date('y'));
$date_second = 24*60*60;
for($d=$start; $d<=$end; $d+=$date_second)
{$coolmonth=date("$setMonth/$d/$myear");
$dateone=date('d',$d);
$J="จ."; $Ong="อัง."; $P="พ."; $Ph="พฤ."; $S="ศ."; $Sa="ส.";$Aa="อ.";
$dateonemk=($dateone%7 );
echo"$dateonemk";
?>
เพราะผมลองดูในปฏิทินแล้ว เดือนนี้เดือน พฤษภาคม ซึ่งได้มีการนับย้อนหลัง จากวันที่ 27 ของเดือนที่แล้วก็คือเดือนเมษายน ซึ่งวันที่ 27 เป็นวันอังคาร ตัวเลขที่ขึ้นก็น่าจะเป็น 2 ในตำแหน่ง วันที่ 27แต่ที่แสดงมันแสดง เป็นที่เห็นอย่างข้างบน ผมควรจะปรับยังไง ช่วยแนะนำหน่อยนะครับ
|
|
|
|
|
Date :
2010-05-10 12:06:02 |
By :
SOUL |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมงงครับ พอจะเขียนตัวอย่างสั้นให้มองเห็นภาพหน่อยครับ
|
|
|
|
|
Date :
2010-05-10 13:10:16 |
By :
SOUL |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ใช้ w ล่ะครับ
$th_day = array('อ', 'จ', 'อัง', ... ถึง เสาร์);
$day = date('w', $d);
echo $th_day($day);
ไม่เกี่ยวกับ mod เลยคับ
|
|
|
|
|
Date :
2010-05-10 14:45:54 |
By :
เอี่ยว ^^ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมลองทำตามดูแล้วนะครับ ไม่เห็นมีไรเลยอะครับ มันต้องแก้อย่างไร มันมีแค่ array(4) แค่นี้เองครับ
|
|
|
|
|
Date :
2010-05-10 15:27:07 |
By :
SOUL |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ที่คุณต้องการคือ ต้องการรู้ว่าวันที่แต่ละวันเป็นวันที่เท่าไหร่ในสัปดาห์หรอ
|
|
|
|
|
Date :
2010-05-11 13:27:30 |
By :
naskw |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?
$month_current = date("m");
$month_before = $month_current-1;
$start = mktime(0, 0, 0,$month_before,27,date('Y'));
$end = mktime(0, 0, 0,$month_current,26,date('Y'));
$date_second = 24*60*60;
for($d=$start; $d<=$end; $d+=$date_second)
{
echo date("d-m-Y",$d)." => ".date("w",$d)."<br/>";
}
?>
|
|
|
|
|
Date :
2010-05-11 13:57:22 |
By :
naskw |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วครับขอบคุณมากครับที่ช่วยกันตอบครับ
|
|
|
|
|
Date :
2010-05-11 14:58:47 |
By :
SOUL |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|