user1068410
user1068410

Reputation: 90

Javascript countdown and PHP date

Here is a JavaScript that I use to generate some countdowns, my problem is that the JavaScript is using the date from the users PC, is there any way to modify the script to use something like :

<?php 
date_default_timezone_set('Ireland/Dublin');
$date = date('m/d/Y h:i:s A', time());?>

Here is the current code used on the site to display multiple countdown on the page.

   <script type="text/javascript" language="JavaScript">//<![CDATA[


<?php
    echo 'StartCountDown("c' . $post->ID . '","' . $enddate . '")';

    ?>


  function StartCountDown(myDiv,myTargetDate)
  {
    var dthen   = new Date(myTargetDate);
    var dnow    = new Date();
    ddiff       = new Date(dthen-dnow);
    gsecs       = Math.floor(ddiff.valueOf()/1000);
    CountBack(myDiv,gsecs);
  }

  function Calcage(secs, num1, num2)
  {
    s = ((Math.floor(secs/num1))%num2).toString();
    if (s.length < 2) 
    {   
      s = "0" + s;
    }
    return (s);
  }

  function CountBack(myDiv, secs)
  {
    var DisplayStr;
    var DisplayFormat = "%%D%% %%H%%:%%M%%:%%S%%";
    DisplayStr = DisplayFormat.replace(/%%D%%/g,    Calcage(secs,86400,100000));
    DisplayStr = DisplayStr.replace(/%%H%%/g,       Calcage(secs,3600,24));
    DisplayStr = DisplayStr.replace(/%%M%%/g,       Calcage(secs,60,60));
    DisplayStr = DisplayStr.replace(/%%S%%/g,       Calcage(secs,1,60));
    if(secs > 0)
    {   
      document.getElementById(myDiv).innerHTML = DisplayStr;
      setTimeout("CountBack('" + myDiv + "'," + (secs-1) + ");", 990);
    }
    else
    {
      document.getElementById(myDiv).innerHTML = "&nbsp;SOLD OUT";
    }
  }

//]]></script>

Any help will be much appreciated.

Upvotes: 1

Views: 690

Answers (2)

nickb
nickb

Reputation: 59709

It looks like its as simple as changing

var dnow    = new Date();

to something like:

<?php date_default_timezone_set('Ireland/Dublin'); ?>
var dnow    = new Date( <?= time(); ?>);

Upvotes: 4

Jan Dragsbaek
Jan Dragsbaek

Reputation: 8101

You should take a look at this answer here on SO, the snippet written by @pimvdb is really good and really readable. Very straightforward to modify aswell.

Upvotes: 0

Related Questions