ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingการวน Loop วันที่เพื่อจะขายตั๋ว
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: การวน Loop วันที่เพื่อจะขายตั๋ว  (อ่าน 1417 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
test_one
ก๊วนเสียว
*

พลังน้ำใจ: 3
ออฟไลน์ ออฟไลน์

กระทู้: 207



ดูรายละเอียด
« เมื่อ: 05 ตุลาคม 2014, 10:13:56 »

การวน Loop วันที่เพื่อจะขายตั๋ว  คือ
เลือกวันที่  2014-10-28  ถึง  2014-11-02  เท่ากับ  5   แต่ ภายใน  5  วัน อยากรู้ว่ามีวันอะไรบ้างค่ะ  เพื่อเอาไปเช็คราคาขายตั๋วว่า 5 วันนั้นมีราคาอะไรบ้าง

รบกวน หน่อยนะค่ะ ว่าต้อง วน Loop อย่างไร เพื่อให้ได้ วันนวนวันระหว่าง ค่ะ
บันทึกการเข้า
NightClub
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 297
ออฟไลน์ ออฟไลน์

กระทู้: 2,461



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 05 ตุลาคม 2014, 10:44:53 »

ไม่แน่ใจคำถาม

ถ้าหาจำนวนวัน

ใช้ คำสั่ง strtotime แปลงเป็น unix time ก่อนทั้งวันเริ่มต้น และสิ้นสุด

จากนั้น เอาวันสิ้นสุด - วันเริ่มต้น

เอาค่าที่ได้มา หารกับ (3600*24)


ถ้าหาว่ามีวันอะไรบ้าง

ใช้สูตรด้านบนหาจำนวนวัน
จากนั้นวนลูปโดย เอา unixtime เริ่มต้น มาหาค่า กับ function date ว่าวันนั้นเป็นวันอะไร
พอสั้นคำสั่งก็ +เพิ่มเวลาไปอีก 3600*24 ให้ครบจำนวนวัน
บันทึกการเข้า

รับจ้างเขียนโปรแกรม PHP งานมืออาชีพ เสร็จตามที่กำหนด ราคาปานกลาง
เหมาะกับผู้ที่รับงานมาแล้วส่งต่อจ๊ะ PM มาเลย
Extra Cash
สมุนแก๊งเสียว
*

พลังน้ำใจ: 268
ออฟไลน์ ออฟไลน์

กระทู้: 631



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 05 ตุลาคม 2014, 11:33:32 »

ใช้ภาษาอะไรครับถ้า VB ก็ประมาณนี้
    Dim dt As Date
    For dt = #2014-10-28# To #2014-11-02#
        Debug.Print Weekday(dt)
    Next

Weekday(dt) จะ return วันตั้งแต่ 1-7 (1=วันอาทิตย์)
บันทึกการเข้า

dualkore
Newbie
*

พลังน้ำใจ: 9
ออฟไลน์ ออฟไลน์

กระทู้: 99



ดูรายละเอียด
« ตอบ #3 เมื่อ: 05 ตุลาคม 2014, 11:57:44 »

แบบ php

<?php

$st = date('Y-m-d',strtotime('2014-10-28'));
$ed = date('Y-m-d',strtotime('2014-11-07'));
$sum = ceil((strtotime($ed) - strtotime($st)) /  ( 3600 * 24 ));

for($i=0;$i<=$sum;$i++ ){
   $d1 = (3600 * 24)*$i;   
   $day = date('Y-m-d',strtotime($st)+$d1);
   $d = date('d',strtotime($day));      
   $m = date('m',strtotime($day));
   $y = date('Y',strtotime($day));
   $day_number = cal_to_jd(CAL_GREGORIAN ,$m,$d,$y);
   $Weekday = jddayofweek($day_number,2);
   echo $day." - ".$Weekday."<br>";
}
บันทึกการเข้า

คนเรามีความพยายามเท่ากันแต่...ใช้ไม่เท่ากัน
test_one
ก๊วนเสียว
*

พลังน้ำใจ: 3
ออฟไลน์ ออฟไลน์

กระทู้: 207



ดูรายละเอียด
« ตอบ #4 เมื่อ: 05 ตุลาคม 2014, 14:24:12 »

ขอบคุณทุกความคิดเห็นค่ะ เป็น php   ขอบคุณค่ะ  wanwan017 wanwan017 wanwan017
บันทึกการเข้า
test_one
ก๊วนเสียว
*

พลังน้ำใจ: 3
ออฟไลน์ ออฟไลน์

กระทู้: 207



ดูรายละเอียด
« ตอบ #5 เมื่อ: 06 ตุลาคม 2014, 11:46:54 »

ขอเพิ่มเติมอีกนิดนะค่ะ
คือ เมื่อรู้แล้วว่า วันนั้นขายตั๋วราคาอะไรแล้ว ต้องการเฉลี่ยราคาตั๋ว 
ถ้า
2014-10-28  =  300
2014-10-29  =  200
2014-10-30  =  300
2014-10-31  =  300
2014-11-01  =  200
2014-11-02  =  300

เราจะขายตั๋ว ราคา  300 ค่ะ    ไม่ทราบว่าต้องทำยังไงค่ะ  รบกวนหน่อยนะค่ะ   Lips Sealed
บันทึกการเข้า
dualkore
Newbie
*

พลังน้ำใจ: 9
ออฟไลน์ ออฟไลน์

กระทู้: 99



ดูรายละเอียด
« ตอบ #6 เมื่อ: 06 ตุลาคม 2014, 11:58:25 »

งง กลับคำถามและ ตัวอย่างที่ให้มาครับ  Tongue
บันทึกการเข้า

คนเรามีความพยายามเท่ากันแต่...ใช้ไม่เท่ากัน
test_one
ก๊วนเสียว
*

พลังน้ำใจ: 3
ออฟไลน์ ออฟไลน์

กระทู้: 207



ดูรายละเอียด
« ตอบ #7 เมื่อ: 06 ตุลาคม 2014, 13:06:11 »

งง กลับคำถามและ ตัวอย่างที่ให้มาครับ  Tongue


วันที่              ราคาตั๋ว
2014-10-28  =  300
2014-10-29  =  200
2014-10-30  =  300
2014-10-31  =  300
2014-11-01  =  200
2014-11-02  =  300

คือ  อยากจะดึง ราคา ที่เป็น 300  มาขาย ค่ะ  เพราะ ราคา300 มี  4 วัน และ ราคา 200 มี  2 วัน   ประมาณนี้ ค่ะ
ถ้าไงขอ  pm  ได้ไหม ค่ะ

« แก้ไขครั้งสุดท้าย: 06 ตุลาคม 2014, 13:08:51 โดย test_one » บันทึกการเข้า
kunnarakkup
สมุนแก๊งเสียว
*

พลังน้ำใจ: 3
ออฟไลน์ ออฟไลน์

กระทู้: 886



ดูรายละเอียด
« ตอบ #8 เมื่อ: 06 ตุลาคม 2014, 13:09:18 »

งง กลับคำถามและ ตัวอย่างที่ให้มาครับ  Tongue

น่าจะถามว่า วันที่ 2014-10-28  =  300 ขายราคาตั๋ว 300 ไป 5 ใบ แล้วคิดค่าเฉลี่ยของตัว 300 ที่ขายไป5 ใบละมั้ง
บันทึกการเข้า
NeoSmith
สมุนแก๊งเสียว
*

พลังน้ำใจ: 71
ออฟไลน์ ออฟไลน์

กระทู้: 791



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 06 ตุลาคม 2014, 13:19:22 »

งงกับคำถามเหมือนกัน
บันทึกการเข้า

ช่วยเหลือผู้ป่วยโรคเอดส์กับทางวัดพระบาทน้ำพุง่ายๆ ด้วยการโทร
1900 222 200
ครั้งละ 15 บาท
รับออกแบบ-เขียนแบบ บ้าน อาคารพานิชย์ อพาร์ทเมนท์ โรงงานฯ โดยทีมวิศวกรผู้ชำนาญงานมากว่า 30 ปี
หาเพื่อน,หาแฟน,หากิ๊ก นัดเพื่อน Line
dualkore
Newbie
*

พลังน้ำใจ: 9
ออฟไลน์ ออฟไลน์

กระทู้: 99



ดูรายละเอียด
« ตอบ #10 เมื่อ: 06 ตุลาคม 2014, 17:33:13 »

งง กลับคำถามและ ตัวอย่างที่ให้มาครับ  Tongue


วันที่              ราคาตั๋ว
2014-10-28  =  300
2014-10-29  =  200
2014-10-30  =  300
2014-10-31  =  300
2014-11-01  =  200
2014-11-02  =  300

คือ  อยากจะดึง ราคา ที่เป็น 300  มาขาย ค่ะ  เพราะ ราคา300 มี  4 วัน และ ราคา 200 มี  2 วัน   ประมาณนี้ ค่ะ
ถ้าไงขอ  pm  ได้ไหม ค่ะ



<?php

$st = date('Y-m-d',strtotime('2014-10-28'));
$ed = date('Y-m-d',strtotime('2014-11-07'));
$sum = ceil((strtotime($ed) - strtotime($st)) /  ( 3600 * 24 ));

for($i=0;$i<=$sum;$i++ ){
   $d1 = (3600 * 24)*$i;   
   $day = date('Y-m-d',strtotime($st)+$d1);
   $d = date('d',strtotime($day));     
   $m = date('m',strtotime($day));
   $y = date('Y',strtotime($day));
   $day_number = cal_to_jd(CAL_GREGORIAN ,$m,$d,$y);
   $Weekday = jddayofweek($day_number,2);
   
   if($ticket_day_price = 300){
     echo $day." - ".$Weekday."<br>";
   }
}
บันทึกการเข้า

คนเรามีความพยายามเท่ากันแต่...ใช้ไม่เท่ากัน
dragons_first
สมุนแก๊งเสียว
*

พลังน้ำใจ: 113
ออฟไลน์ ออฟไลน์

กระทู้: 953



ดูรายละเอียด เว็บไซต์
« ตอบ #11 เมื่อ: 06 ตุลาคม 2014, 17:59:43 »

ขอดูโค๊ดเต็มๆหน่อยครับ
บันทึกการเข้า

รับทำเว็บไซต์ ตามขอบเขตของลูกค้าราคาเบาๆ

รับแก้สคริปท์ เพิ่มระบบ เปลี่ยนแปลงเลเอาท์เว็บไซต์ จัด cssใหม่ แก้การแสดงผลผิดเพี้ยน
ท่านจะได้รับการบริการที่เป็นกันเอง ราคาไม่แพง ต่อรองได้(แต่ไม่น่าเกลียด) คุยกันฉันมิตร นะฮ๊าฟฟฟฟฟ
หน้า: [1]   ขึ้นบน
พิมพ์