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

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

ThaiSEOBoard.comความรู้ทั่วไปGeneral (ถามคุยวิชาการ IM)สอบถามเรื่อง Code PHP หน่อยครับ ขอสคริปนับเวลาถอยหลังแบบสินค้าประมูล
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: สอบถามเรื่อง Code PHP หน่อยครับ ขอสคริปนับเวลาถอยหลังแบบสินค้าประมูล  (อ่าน 4015 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
Blacks™
Newbie
*

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

กระทู้: 11



ดูรายละเอียด
« เมื่อ: 18 พฤศจิกายน 2015, 16:11:37 »

ไม่ทราบว่าท่านใดมีสคริปนับเวลาถ้อยหลัง แบบการประมูลสินค้าไหมครับ ผมหามานานมากแล้วแต่ไม่เจอครับ เคยมีคนถามแล้วหลาย ๆ ที่แต่ยังไม่มีใครบอกวิธีได้ชัดเจนครับผม บางอันก็นำมาใช้ไม่เป็น โดยอยากให้จับจากฐานข้อมูลที่เป็น Datetime (0000-00-00 00:00:00) แบบนี้ครับ ท่านใดมีสคริปตัวนี้โปรดแนะนำบอกทางสว่างให้ทีนะครับผม ถ้าเป็นไปได้ขอวิธีการใช้งานแบบละเอียดเลยครับ ขอบคุณมากครับ

อยากแสดงแบบนี้ครับ

 0  00:00:00
วัน ชั่วโมง : นาที : วินาที

 wanwan017 wanwan017 wanwan017
« แก้ไขครั้งสุดท้าย: 18 พฤศจิกายน 2015, 16:15:20 โดย Blacks™ » บันทึกการเข้า
sbaydee
Verified Seller
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,622



ดูรายละเอียด
« ตอบ #1 เมื่อ: 18 พฤศจิกายน 2015, 16:25:12 »

กำหนดเวลาจบไว้ในฐานข้อมูล แล้วใช้ javascript นับถอยหลังเอาครับ
http://keith-wood.name/countdownBasics.html
บันทึกการเข้า
Blacks™
Newbie
*

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

กระทู้: 11



ดูรายละเอียด
« ตอบ #2 เมื่อ: 18 พฤศจิกายน 2015, 17:05:57 »

กำหนดเวลาจบไว้ในฐานข้อมูล แล้วใช้ javascript นับถอยหลังเอาครับ
http://keith-wood.name/countdownBasics.html

ถ้าจะอ้างอิงรูปแบบจาก Datetime 0000-00-00 00:00:00 แบบนี้จะใช้ยังไงหรอครับ
บันทึกการเข้า
numau109
หัวหน้าแก๊งเสียว
*

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

กระทู้: 2,159



ดูรายละเอียด
« ตอบ #3 เมื่อ: 18 พฤศจิกายน 2015, 17:10:31 »

กำหนดเวลาจบไว้ในฐานข้อมูล แล้วใช้ javascript นับถอยหลังเอาครับ
http://keith-wood.name/countdownBasics.html

ถ้าจะอ้างอิงรูปแบบจาก Datetime 0000-00-00 00:00:00 แบบนี้จะใช้ยังไงหรอครับ

อ่านค่าออกมาไว้ใน javascript ครับ  แยกออกมาเป็นตัว ๆ

บันทึกการเข้า

Blacks™
Newbie
*

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

กระทู้: 11



ดูรายละเอียด
« ตอบ #4 เมื่อ: 19 พฤศจิกายน 2015, 07:51:12 »

กำหนดเวลาจบไว้ในฐานข้อมูล แล้วใช้ javascript นับถอยหลังเอาครับ
http://keith-wood.name/countdownBasics.html

ถ้าจะอ้างอิงรูปแบบจาก Datetime 0000-00-00 00:00:00 แบบนี้จะใช้ยังไงหรอครับ

อ่านค่าออกมาไว้ใน javascript ครับ  แยกออกมาเป็นตัว ๆ


รบกวนเขียนให้ดูหน่อยนะครับผม งง ๆ อยู่ครับ รบกวนทีนะครับผม
« แก้ไขครั้งสุดท้าย: 19 พฤศจิกายน 2015, 07:52:04 โดย Blacks™ » บันทึกการเข้า
ANALOGY
สมุนแก๊งเสียว
*

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

กระทู้: 749



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 19 พฤศจิกายน 2015, 14:09:34 »

ลองโมดูครับ นำค่า DATE จากDBมาแปลงแทน
 เพื่อกำหนดให้นับถอยหลังตามเวลาที่อ้างอิงจากDatabase
ตัวแปรจะนับเป็นวินาที

CODE PHP
โค๊ด:
<?php 
session_start
(); 
if (!isset(
$_SESSION[&#39;timeend&#39;])){ 
unset($_SESSION[&#39;timeend&#39;]);
    
$endtime time()   10
    
$_SESSION[&#39;timeend&#39;] = $endtime; 


(
$_SESSION[&#39;timeend&#39;] - time()) < 0 ? $EndTime = 0 :  $EndTime = $_SESSION[&#39;timeend&#39;] - time();

if($EndTime <= 0) { 
unset($_SESSION[&#39;timeend&#39;]);
//session_destroy(); 


?>


ต้องการให้แสดง เวลาที่นับถอยหลัง
โค๊ด:
<?php echo $EndTime?>


ส่วนตรงนี้คือJAVA เมื่อเวลาหมดต้องการให้ Redirect ไปไหนหรือไม่
โค๊ด:
<script type="text/javascript"> 
var pastTime = <?php echo $EndTime;?>;

function mycountdown(){
      if(pastTime > 0) {
            pastTime -= 1;
            document.getElementById('timer').innerHTML = pastTime;
      }
if(pastTime < 1) {
            window.location = "http://www.google.com/"
      }
}
if(pastTime >0){
setInterval(mycountdown,1000);
}
</script>


โค๊ดสำรอง เผื่อโค๊ดข้างบนไม่ถูกใจ
โมเพิ่มเติมเหมือนเดิมยัด PHP เข้าไปลองดูครับ
โค๊ด:
<script language="">
var limit="0:10"
if (document.images){
var parselimit=limit.split(":")
parselimit=parselimit[0]*60 parselimit[1]*1
}
function begintimer(){
if (!document.images)
return
if (parselimit==1)
// เหตุการณ์ที่ต้องการให้เกิดขึ้น
// window.location='page.php'; ถ้าต้องการให้กระโดดไปยัง Page อื่น
frmTest.submit();
else{
parselimit-=1
curmin=Math.floor(parselimit/60)
cursec=parselimit`
if (curmin!=0)
curtime="เวลาที่เหลือ <font color=red> " curmin " </font>นาที กับ <font color=red>" cursec " </font>วินาที "
else
if(cursec==0)
{
alert('หมดเวลาแล้วจ้า');
}
else
{
curtime="เวลาที่เหลือ <font color=red>" cursec " </font>วินาที "
}
document.getElementById('dplay').innerHTML = curtime;
setTimeout("begintimer()",1000)
}
}
//-->
</script>
« แก้ไขครั้งสุดท้าย: 19 พฤศจิกายน 2015, 14:16:50 โดย ANALOGY » บันทึกการเข้า

Blacks™
Newbie
*

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

กระทู้: 11



ดูรายละเอียด
« ตอบ #6 เมื่อ: 19 พฤศจิกายน 2015, 16:32:24 »

ตอนนี้หาสคริปได้แล้วครับ แต่ว่ามันใช้ได้แค่อันเดียว รายการแรกที่เราคิวรี่ข้อมูลมา อันอื่นไม่ขึ้นครับ



ไฟล์ cdtime.js
โค๊ด:
    /* To display a Countdown timer until specified Date-Time */
var countdownTime = function(refid) {
  // function to be executed when countdown timer reach to 0
  var cdTimer0 = function() {
    // HERE Add the code to be processed
  }

  // http://coursesweb.net/javascript/
  // sets an <option> lists and adds it into <select> with "id" from id parameter
  var setOptions = function(min, max, id) {
    re = '';
    for(var i=min; i<=max; i  ) {
      re  = '<option value="'  i  '">'  i  '</option>';
    }
    document.getElementById(id).innerHTML = re;
  }
 

  // sets the days in <select> list with days
  this.setDays = function(month) {
    // sets maximum day number according to month
    if(month == 3 || month == 5 || month == 7 || month == 9) var maxday = 30;
    else if(month == 1) {
      if((year % 4) == 0) var maxday = 29;
      else var maxday = 28;
    }
    else var maxday = 31;

    setOptions(1, maxday, refid  'fday');       // adds the option with days
  }

  // sets a object for current datetime and gets current year, month, milliseconds
  var obNow = new Date();
  var year = obNow.getFullYear();
  this.month = obNow.getMonth();
  this.fform = (document.querySelector('form#'  refid  'timer') != null) ? 1 : 0;     // to know if datetime is from form or not
  var fmills = 0;         // number of milliseconds of ending datetime
  var thisOb = this;      // contains reference to object with this class, to can be used inside function to auto-call

  // if form field with id="cdttimer"
  if(this.fform == 1) setOptions(year, 2020, refid  'fyear');      // adds the option with years

  // this function is called from Start button. It sets and displays countdown data
  this.setCTimer = function() {
    // gets the difference between milliseconds of datetime from form and current datetime
    obNow = new Date();
    var mills = fmills - obNow.getTime();

    // if mills > 0, sets object and data with mills, else, returns false
    if(mills > 0) {
      // sets Date object with milliseconds of difference between current datetime and datetime from form
      // to get number of years, months, days, minutes and seconds in this milliseconds
      var obCDown = new Date(mills);
      var years = obCDown.getUTCFullYear() - 1970;
      var months = obCDown.getUTCMonth();
      var days = obCDown.getUTCDate() - 1;
      var hours = obCDown.getUTCHours();
      var minuts = obCDown.getUTCMinutes();
      var secs = obCDown.getUTCSeconds();

      // display the time in page, and auto-calls this function after 1 seccond
      document.getElementById(refid  'years').innerHTML = years;
      document.getElementById(refid  'months').innerHTML = months;
      document.getElementById(refid  'days').innerHTML = days;
      document.getElementById(refid  'hours').innerHTML = hours;
      document.getElementById(refid  'mints').innerHTML = minuts;
      document.getElementById(refid  'secs').innerHTML = secs;

      setTimeout(thisOb.setCTimer, 1000);       // auto-calls this function
    }
    else if(this.fform == 1 && mills < -999) alert('The ending datetime must be higher than current datetime.');
    else {
      // calls the cdTimer0() when countdown timer reach to 0
      cdTimer0();

      return false;
    }
  }

  // to set 'fmills' prop., and start the countdown, calls the setCTimer()
  this.startCDT = function() {
    // if element with id="cdttimer" exists, gets data for year, month, day, minutes and seconds
    if(document.getElementById(refid  'timer')) {
      var fyear = (this.fform == 1) ? document.getElementById(refid  'fyear').value : document.getElementById(refid  'fyear').innerHTML;
      var fmonth = (this.fform == 1) ? document.getElementById(refid  'fmonth').value : document.getElementById(refid  'fmonth').innerHTML;
      var fday = (this.fform == 1) ? document.getElementById(refid  'fday').value : document.getElementById(refid  'fday').innerHTML;
      var fhours = (this.fform == 1) ? document.getElementById(refid  'fhour').value : document.getElementById(refid  'fhour').innerHTML;
      var fminutes = (this.fform == 1) ? document.getElementById(refid  'fmints').value : document.getElementById(refid  'fmints').innerHTML;
      var fseconds = (this.fform == 1) ? document.getElementById(refid  'fsecs').value : document.getElementById(refid  'fsecs').innerHTML;

      // sets fmills with milliseconds of ending datetime
      fmills = Date.parse(fmonth  ' '  fday  ', '  fyear  ' '  fhours  ':'  fminutes  ':'  fseconds);

      // calls setCTimer(), and shows ending time in page
      this.setCTimer();
      if(document.getElementById(refid  'until')) document.getElementById(refid  'until').innerHTML = fmonth  '/'  fday  '/'  fyear  ' - '  fhours  ':'  fminutes  ':'  fseconds;
    }
  }
}

// create an object of the countdownTimer class
var objCT = new countdownTime('cdt');
if(objCT.fform == 1) objCT.setDays(objCT.month);        // adds the options with days according to current month

// to start the countdown automatically, delete the three slashes
/// objCT.startCDT();




โค๊ดรายการ
โค๊ด:
<? $dt = $row["bid_date"]; ?>
<script type="text/javascript" src="js/cdtime.js"></script>
<script type="text/javascript">objCT.startCDT();</script>         
<div id="cdttimer" style="display:none;">
<span id="cdtfmonth"><? echo date("m",strtotime($dt)); ?></span><!--เดือน -->
<span id="cdtfday"><? echo date("d",strtotime($dt)); ?></span><!--วันที่-->
<span id="cdtfyear"><? echo date("Y",strtotime($dt)); ?></span><!--ปี-->
<span id="cdtfhour"><? echo date("H",strtotime($dt)); ?></span><!--ชั่วโมง-->
<span id="cdtfmints"><? echo date("i",strtotime($dt)); ?></span><!--นาที-->
<span id="cdtfsecs"><? echo date("s",strtotime($dt)); ?></span><!--วินาที-->
</div>
<div id="cdtshow">
<!--Years: --><span id="cdtyears" style="display:none;">0</span>
<!--Months:--> <span id="cdtmonths" style="display:none;">0</span>
<span id="cdtdays">0</span>
<span id="cdthours">0</span>:<span id="cdtmints">0</span>:<span id="cdtsecs">0</span>
</div>

พอมีท่านใดทราบวิธีแก้ไหมครับผม
บันทึกการเข้า
sahawat
ก๊วนเสียว
*

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

กระทู้: 224



ดูรายละเอียด
« ตอบ #7 เมื่อ: 27 พฤศจิกายน 2015, 07:03:49 »

มาเก็บเกี่ยวความรู้ครับ wanwan017
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์