PHP Ionic Angularjs Phonegap AJAX Javascript CSS MySQL jQuery Forum

ช่วยดูเรื่อง การหาระยะเวลา ครับ

ช่วยดูเรื่อง การหาระยะเวลา ครับ

function duration($begin,$end){
 $remain=intval(strtotime($end)-strtotime($begin));
 $wan=floor($remain/86400);
 $l_wan=$remain%86400;
 $hour=floor($l_wan/3600);
 $l_hour=$l_wan%3600;
 $minute=floor($l_hour/60);
 $second=$l_hour%60;
 return "เหลือเวลาอีก ".$wan." วัน ".$hour." ชั่วโมง ".$minute." นาที ".$second." วินาที";
}
echo duration($Enddate,$chk_date);

 

// $Enddate คือค่าที่อ่านจาก ดาต้าเบส คือ กำหนดปิดประมูล

// $chk_date คือค่าของวันที่ปัจจุบัน

// แล้วทำไมมันออกมาเป็นค่าแบบนี้ละครับ ผมว่ามันผิดนะครับ ดูจากรูปที่ผมทำมานะครับ



โดย:  Mrmayom IP: 222.123.223.xxx วันที่: 28-03-2010 เวลา: 11:10:51

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

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


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


  • ( หรือ สามารถทำการ สมัครสมาชิก และล็อกอิน ด้วย ปุ่ม Log in with Facebook ด้านล่าง )
 ความคิดเห็นที่ 4

แก้ไขครับ ข้างล่างพิมพ์ผิด

 

ใช่แล้วครับ ท่านอาจารย์ ผมลองสลับันแล้ว ผลลัพธ์ออกมาถูกต้อง

ดังนั้นจำง่ายๆ คือ ถ้าจะหาระยะเวลาที่ผ่านมา ให้เอาวันที่ เริ่มต้นขึ้นก่อน ตามด้วยวันที่ปัจจุบัน  echo duration($start,$chk_date);

หรือ ถ้าจะหาระยะเวลาที่เหลือ คือหาระยะเวลาภายภาคหน้า ก็ต้องเอา วันที่ปัจจุบันขึ้นก่อน แล้วตามด้วยวันที่สิ้นสุด echo duration($chk_date,$Enddate);  

หรือจะจำอีกอ่างคือ เอาค่าน้อยไว้ข้างหน้าตามด้วย ค่าที่มากกว่า

 

ตอนแรกที่ผมเข้าใจคือ เอาค่ามากลบด้วยค่าน้อย มันเลยไม่ถูกต้อง

 

ตอนนี้ถูกต้องแล้วครับ



โดย:  Mrmayom IP: 117.47.72.xxx วันที่: 28-03-2010 เวลา: 16:37:10
 ความคิดเห็นที่ 3

ใช่แล้วครับ ท่านอาจารย์ ผมลองสลับันแล้ว ผลลัพธ์ออกมาถูกต้อง

ดังนั้นจำง่ายๆ คือ ถ้าจะหาระยะเวลาที่ผ่านมา ให้เอาวันที่ เริ่มต้นขึ้นก่อน ตามด้วยวันที่ปัจจุบัน  echo duration($start,$chk_date);

หรือ ถ้าจะหาระยะเวลาที่เหลือ คือหาระยะเวลาภายภาคหน้า ก็ต้องเอา วันที่ปัจจุบันขึ้นก่อน แล้วตามด้วยวันที่ปัจจุบัน echo duration($Enddate,$chk_date);  

หรือจะจำอีกอ่างคือ เอาค่าน้อยไว้ข้างหน้าตามด้วย ค่าที่มากกว่า

 

ตอนแรกที่ผมเข้าใจคือ เอาค่ามากลบด้วยค่าน้อย มันเลยไม่ถูกต้อง

 

ตอนนี้ถูกต้องแล้วครับ



โดย:  Mrmayom IP: 117.47.72.xxx วันที่: 28-03-2010 เวลา: 16:35:37
 ความคิดเห็นที่ 2

ดูจาก function
function duration($begin,$end){

function duration(น่าจะเป็นวันที่ปัจจุบัน,วันที่ปิดประมูล){

และการส่งค่าไปใน function

echo duration($Enddate,$chk_date);

ลองสลับตำแหน่งเป็น

echo duration($chk_date,$Enddate);



โดย:  Ninenik IP: 124.122.67.xxx วันที่: 28-03-2010
 ความคิดเห็นที่ 1

วันที่ปัจจุบัน ผมใช้สคลิปตัวนี้นะครับ (คิดขึ้นมาเอง) เพราะเวลาที่ server มันไม่ตรงกับกับประเทศไทย

// แก้ไขเรื่องเวลา ถ้าเครื่อง server ไม่ได้อยุ่เมืองไทย
 $date1=date("Y-m-d");   // วันที่
 $H1=date("H")+4;     // ชัวโมง + - ได้ตามต้องการเลยนะครับ
  if($H1<10){ $H="0$H1"; } else { $H="$H1"; }
 $i1=date("i")+2;   // นาที + - ได้ตามต้องการเลยครับ
  if($i1<10){ $i="0$i1"; } else { $i="$i1"; }
 $s1=date("s")+1;  // วินาที + - ได้ตามต้องการเลยครับ
  if($s1<10){ $s="0$s1"; } else { $s="$s1"; }
 $chk_date = "$date1 $H:$i:$s";



โดย:  Mrmayom IP: 222.123.223.xxx วันที่: 28-03-2010 เวลา: 11:14:25