|
|
|
คำถามเดิมที่เคยมีคนถามอ่ะค่ะ แต่ยังไม่กระจ่างเกี่ยวกับวันเวลาที่เหลือค่ะ |
|
|
|
|
|
|
|
อันนี้หาว่าวันที่นี้-วันที่นี้ เหลืออีกกี่วัน
Code (PHP)
<?
$start_date=date("Y-m-d");
$end_date=date("Y-m-d");
$my = explode("-", $start_date);
$myyear = $my[0];
$mymonth = $my[1];
$myday = $my[2];
$my2 = explode("-", $end_date);
$myyear2 = $my2[0];
$mymonth2 = $my2[1];
$myday2 = $my2[2];
$start = gregoriantojd($mymonth,$myday,$myyear);
$end = gregoriantojd($mymonth2,$myday2,$myyear2);
$mycal = $end-$start;
echo "เหลืออีก $mycal คุณต้องอ่านหนังสือ";
?>
|
|
|
|
|
Date :
2012-05-14 10:16:25 |
By :
keng_ds |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณค่ะคุณ Keng_ds และพี่วิน
พอดีได้จากกระทู้พี่วินแล้วค่ะ สุดยอดมาก แต่ติดปัญหานิดนึงตรงที่ว่า
เมื่อนับถอยหลังหมดเวลาแล้ว เช่น
กำหนดวันหมดอายุ เป็น 2012-05-14 19:39:00
ถ้าวันนี้ รันแล้วถึง 2012-05-14 19:39:00
ทุกอย่างเป็น 0 วัน 0 ชม. 0 นาที 0 วินาทีค่ะ
แต่ถ้าวันนี้ รันเป็น 2012-05-14 19:39:05
มันจะกลายเป็น 0 วัน 0 ชม. 0 นาที 5 วินาที ไปเรื่อย ๆ ค่ะ
ตรงนี้ดักให้มันไม่ต้องรันต่อ หรือ ถ้าค่าวันนี้เท่ากับวันหมดอายุ ให้ขึ้นข้อความว่า
ครบกำหนดแล้ว ก็ได้ค่ะ
อีกอย่างนึง พอรันแล้วได้ค่าเป็น
Array ( [D] => 0 [H] => 0 [M] => 0 [S] => 8 )
อยากเปลี่ยนตรงนี้เป็น
เวลาที่เหลือ : 0 วัน 0 ชม. 15 นาที 23 วินาที
ประมาณนี้ค่ะ
นี่เป็น code ที่ทำไว้อ่ะค่ะ
Code (PHP)
<?php
$rdate = mktime(8,0,0,3,30,2011);
$ftart = mktime(8,0,0,3,30,2011);
$online=$rdate-$ftart;
$day = intval( $online / 86400 ); // จำนวนวัน
$hours = intval( ( $online % 86400 ) / 3600 ); // จำนวน ชั่วโมง
$mins = intval( ( ( $online % 86400 ) % 3600 ) / 60 ); // จำนวน นาที
$secs = intval( ( ( ( $online % 86400 ) % 3600) % 60 ) ); // จำนวน วินาที
?>
<?
function dateDiv($exdate,$tdate){ // ส่งวันที่ที่ต้องการเปรียบเทียบ ในรูปแบบ มาตรฐาน
$t1Arr=splitTime($exdate);
$t2Arr=splitTime($tdate);
$Time1=mktime($t1Arr["h"], $t1Arr["m"], $t1Arr["s"], $t1Arr["M"], $t1Arr["D"], $t1Arr["Y"]);
$Time2=mktime($t2Arr["h"], $t2Arr["m"], $t2Arr["s"], $t2Arr["M"], $t2Arr["D"], $t2Arr["Y"]);
$TimeDiv=abs($Time2-$Time1);
$Time["D"]=intval($TimeDiv/86400); // จำนวนวัน
$Time["H"]=intval(($TimeDiv%86400)/3600); // จำนวน ชั่วโมง
$Time["M"]=intval((($TimeDiv%86400)%3600)/60); // จำนวน นาที
$Time["S"]=intval(((($TimeDiv%86400)%3600)%60)); // จำนวน วินาที
return $Time;
}
function splitTime($time){ // เวลาในรูปแบบ มาตรฐาน 2006-03-27 21:39:12
$timeArr["Y"]= substr($time,2,2);
$timeArr["M"]= substr($time,5,2);
$timeArr["D"]= substr($time,8,2);
$timeArr["h"]= substr($time,11,2);
$timeArr["m"]= substr($time,14,2);
$timeArr["s"]= substr($time,17,2);
return $timeArr;
}
//------------------------------ ตัวอย่างการใช้งาน
$eday = date("Y-m-d");
$etime = strftime("%H:%M:%S");
$tdate ="$eday $etime";
$exdate="2012-05-14 19:39:00";
print "Today : $tdate <br>Expire : $exdate <br> ";
$time=dateDiv($exdate,$tdate);
print_r($time);
?>
|
|
|
|
|
Date :
2012-05-14 19:32:48 |
By :
because |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ช่วยทีนะคะ
|
|
|
|
|
Date :
2012-05-14 20:41:04 |
By :
because |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดันอีกรอบค่ะ เผื่อมีใครผ่านมาค่ะ
|
|
|
|
|
Date :
2012-05-15 06:38:29 |
By :
because |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่มีใครผ่านมาเห็นแล้ว เงียบมากเลย
|
|
|
|
|
Date :
2012-05-15 12:41:06 |
By :
because |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|