Reputation: 90
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 = " SOLD OUT";
}
}
//]]></script>
Any help will be much appreciated.
Upvotes: 1
Views: 690
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
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