|
|
|
หาความต่างของ datetime จากฐานข้อมูล แล้วเอาค่าที่ได้มานับถอยหลัง รบกวนทีครัย |
|
|
|
|
|
|
|
คือผมได้ลองหาจากในบอร์ดแล้วครับ แล้วก็เอามารวมกัน ปรากฏว่า หาความต่างของวันเวลาได้แล้ว ติดตรงที่ว่า ให้มันนับถอยหลังเป็น วัน:ชั่วโมง:นาที:วินาที ซึ่งตามโค้ดที่ผมโพสสามารถนับถอยหลังได้แล้ว แต่มันมีข้อมูลออกมาแค่ low เดียวอะคับ รบกวนช่วยดูทีนะคับ ขอบคุณล่วงหน้าครับ
Code (PHP)
<?php
session_start();
function secondsTime($examTime){
$time = explode(":", $examTime);
$d = $time[0]*86400;
$h = $time[1]*3600;
$m = $time[2]*60;
$s = $time[3]*1;
$seconds = $d+$h+$m+$s;
return $seconds;
//แปลงค่าเป็นวินาที
}
//-------------------------------------------------------//
function dateDiv($t1,$t2){ // ส่งวันที่ที่ต้องการเปรียบเทียบ ในรูปแบบ มาตรฐาน 2006-03-27 21:39:12
$t1Arr=splitTime($t1);
$t2Arr=splitTime($t2);
$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;
}
//------------------------------ ตัวอย่างการใช้งาน
include ("scrib/conection_DB.php");
$strSQL = "select dateL,dateS from product" ;
$objQuery = mysql_query($strSQL);
//$objResult = mysql_fetch_array($objQuery) ;
while ($objResult = mysql_fetch_array($objQuery)) {
$t1=$objResult["dateS"];
$t2=$objResult["dateL"];
$time=dateDiv($t1,$t2);
//-------------------------------------------------------//
$seconds = secondsTime($time["D"],$time["H"],$time["M"],$time["S"]);
if (!isset($_SESSION['timeend'])){
unset($_SESSION['timeend']);
$endtime = time() + $seconds;
$_SESSION['timeend'] = $endtime;
}
($_SESSION['timeend'] - time()) < 0 ? $EndTime = 0 : $EndTime = $_SESSION['timeend'] - time();
if($EndTime <= 0) {
unset($_SESSION['timeend']);
//session_destroy();
}
}
function checkTime($seconds){
$day = floor($seconds/86400);//จำนวนวัน
$hours = floor(($seconds%86400)/3600);//ชั่วโมง
$mins = floor((($seconds%86400)%3600)/60); // จำนวน นาที
$secs = floor(((($seconds%86400)%3600)%60)); // จำนวน วินาที
$time = $day.":".$hours.":".$mins.":".$secs;
return $time;
//แปลงเป็นวินาทีให้อยู่ในรูปแบบ xx:xx:xx:xx
}
$time = checkTime($EndTime);
?>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<body onLoad="begintimer()">
<script language="">
var limit="<?=$time;?>";
if (document.images){
var parselimit=limit.split(":")
parselimit=(parselimit[0]*86400)+(parselimit[1]*3600)+(parselimit[2]*60)+(parselimit[3]*1)
//alert(parselimit);
}
function begintimer(){
if (!document.images)
return
if (parselimit==1)
// เหตุการณ์ที่ต้องการให้เกิดขึ้น
// window.location='page.php'; ถ้าต้องการให้กระโดดไปยัง Page อื่น
frmTest.submit();
else{
parselimit-=1
curday=parseInt(parselimit/86400);
curhr=parseInt((parselimit%86400)/3600);
curmin=parseInt((parselimit%86400)%3600/60);
cursec=parseInt(((parselimit%86400)%3600)%60);
if (curday!==0 && curhr!==0 && curmin!=0)
curtime="<font color=red> "+curday+"</font>d <font color=red> "+curhr+"</font>:<font color=red>"+curmin+" </font>:<font color=red>"+cursec+" </font>"
else
if(cursec==0 && curmin==0 && curhr==0 && curday==0)
{
alert('หมดเวลาแล้วจ้า');
}
else
{
curtime="<font color=red> "+curday+"</font>d <font color=red> "+curhr+"</font>:<font color=red>"+curmin+" </font>:<font color=red>"+cursec+" </font>"
}
document.getElementById('dplay').innerHTML = curtime;
setTimeout("begintimer()",1000)
}
}
//-->
</script>
<form name="frmTest" action="check.php">
<div id=dplay ></div>
</form>
Tag : PHP
|
ประวัติการแก้ไข 2013-06-10 11:49:40
|
|
|
|
|
Date :
2013-06-09 13:09:12 |
By :
tstxp8iu |
View :
982 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณครับ แต่พอดีผมหาความต่างของวันเวลาได้แล้ว ติดตรงที่ว่า ให้มันนับถอยหลังเป็น วัน:ชั่วโมง:นาที:วินาที ซึ่งตามโค้ดที่ผมโพสสามารถนับถอยหลังได้แล้ว แต่มันมีข้อมูลออกมาแค่ low เดียวอะคับ ผมไม่แน่ใจว่า ฟอแมตร์ ผมผิดหรือป่าว
|
|
|
|
|
Date :
2013-06-10 11:47:49 |
By :
tstxp8iu |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|