ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: test_one ที่ 05 ตุลาคม 2014, 10:13:56



หัวข้อ: การวน Loop วันที่เพื่อจะขายตั๋ว
เริ่มหัวข้อโดย: test_one ที่ 05 ตุลาคม 2014, 10:13:56
การวน Loop วันที่เพื่อจะขายตั๋ว  คือ
เลือกวันที่  2014-10-28  ถึง  2014-11-02  เท่ากับ  5   แต่ ภายใน  5  วัน อยากรู้ว่ามีวันอะไรบ้างค่ะ  เพื่อเอาไปเช็คราคาขายตั๋วว่า 5 วันนั้นมีราคาอะไรบ้าง

รบกวน หน่อยนะค่ะ ว่าต้อง วน Loop อย่างไร เพื่อให้ได้ วันนวนวันระหว่าง ค่ะ


หัวข้อ: Re: การวน Loop วันที่เพื่อจะขายตั๋ว
เริ่มหัวข้อโดย: NightClub ที่ 05 ตุลาคม 2014, 10:44:53
ไม่แน่ใจคำถาม

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

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

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

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


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

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


หัวข้อ: Re: การวน Loop วันที่เพื่อจะขายตั๋ว
เริ่มหัวข้อโดย: Extra Cash ที่ 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=วันอาทิตย์)


หัวข้อ: Re: การวน Loop วันที่เพื่อจะขายตั๋ว
เริ่มหัวข้อโดย: dualkore ที่ 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>";
}


หัวข้อ: Re: การวน Loop วันที่เพื่อจะขายตั๋ว
เริ่มหัวข้อโดย: test_one ที่ 05 ตุลาคม 2014, 14:24:12
ขอบคุณทุกความคิดเห็นค่ะ เป็น php   ขอบคุณค่ะ  :wanwan017: :wanwan017: :wanwan017:


หัวข้อ: Re: การวน Loop วันที่เพื่อจะขายตั๋ว
เริ่มหัวข้อโดย: test_one ที่ 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 ค่ะ    ไม่ทราบว่าต้องทำยังไงค่ะ  รบกวนหน่อยนะค่ะ   :-X


หัวข้อ: Re: การวน Loop วันที่เพื่อจะขายตั๋ว
เริ่มหัวข้อโดย: dualkore ที่ 06 ตุลาคม 2014, 11:58:25
งง กลับคำถามและ ตัวอย่างที่ให้มาครับ  :P


หัวข้อ: Re: การวน Loop วันที่เพื่อจะขายตั๋ว
เริ่มหัวข้อโดย: test_one ที่ 06 ตุลาคม 2014, 13:06:11
งง กลับคำถามและ ตัวอย่างที่ให้มาครับ  :P


วันที่              ราคาตั๋ว
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  ได้ไหม ค่ะ



หัวข้อ: Re: การวน Loop วันที่เพื่อจะขายตั๋ว
เริ่มหัวข้อโดย: kunnarakkup ที่ 06 ตุลาคม 2014, 13:09:18
งง กลับคำถามและ ตัวอย่างที่ให้มาครับ  :P

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


หัวข้อ: Re: การวน Loop วันที่เพื่อจะขายตั๋ว
เริ่มหัวข้อโดย: NeoSmith ที่ 06 ตุลาคม 2014, 13:19:22
งงกับคำถามเหมือนกัน


หัวข้อ: Re: การวน Loop วันที่เพื่อจะขายตั๋ว
เริ่มหัวข้อโดย: dualkore ที่ 06 ตุลาคม 2014, 17:33:13
งง กลับคำถามและ ตัวอย่างที่ให้มาครับ  :P


วันที่              ราคาตั๋ว
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>";
   }
}


หัวข้อ: Re: การวน Loop วันที่เพื่อจะขายตั๋ว
เริ่มหัวข้อโดย: dragons_first ที่ 06 ตุลาคม 2014, 17:59:43
ขอดูโค๊ดเต็มๆหน่อยครับ