Voici comment procéder. Working Demo.
D'abord, en haut de votre document HTML:
.datetime {
color: #C11B17;
font-family:arial;
font-size: 16px;
}
Nous faisons cela afin que nous puissions nettoyer notre code HTML un peu:
$rdate1 = 1240550032; // Fri, 24 Apr 2009 05:13:52 GMT
$expiredate = date('d m Y G:i:s', $rdate1);
$time = $rdate1 - time();
$days = floor($time/86400);
$hours = floor(($time-($days*86400))/3600);
$mins = floor(($time-($days*86400)-($hours*3600))/60);
$secs = floor($time-($days*86400)-($hours*3600)-($mins*60));
printf("
Your account is going to expire in
<span class='datetime' id='days'>%s</span> Days
<span class='datetime' id='hours'>%s</span> Hours
<span class='datetime' id='minutes'>%s</span> Minutes
<span class='datetime' id='seconds'>%s</span> Seconds
", $days, $hours, $mins, $secs);
Je ne suis pas tout à fait sûr où cette étape intermédiaire que vous preniez vient, mais le code ci-dessus me fait la différence dans le temps entre $rdate1
(probablement un timestamp unix) et time()
.
Enfin, nous pouvons faire quelque chose comme ça avec Javascript pour mettre à jour le temps une fois que la page se charge:
addEvent(window, 'load', function() {
var eDays = document.getElementById('days');
var eHours = document.getElementById('hours');
var eMinutes = document.getElementById('minutes');
var eSeconds = document.getElementById('seconds');
var timer;
timer = setInterval(function() {
var vDays = parseInt(eDays.innerHTML, 10);
var vHours = parseInt(eHours.innerHTML, 10);
var vMinutes = parseInt(eMinutes.innerHTML, 10);
var vSeconds = parseInt(eSeconds.innerHTML, 10);
vSeconds--;
if(vSeconds < 0) {
vSeconds = 59;
vMinutes--;
if(vMinutes < 0) {
vMinutes = 59;
vHours--;
if(vHours < 0) {
vHours = 23;
vDays--;
}
}
} else {
if(vSeconds == 0 &&
vMinutes == 0 &&
vHours == 0 &&
vDays == 0) {
clearInterval(timer);
}
}
eSeconds.innerHTML = vSeconds;
eMinutes.innerHTML = vMinutes;
eHours.innerHTML = vHours;
eDays.innerHTML = vDays;
}, 1000);
});
function addEvent(obj, type, fn) {
if (obj.attachEvent) {
obj['e'+type+fn] = fn;
obj[type+fn] = function(){obj['e'+type+fn](window.event);}
obj.attachEvent('on'+type, obj[type+fn]);
} else
obj.addEventListener(type, fn, false);
}
En ce qui concerne le PHP, vous pouvez jeter un oeil à http://php.net/strftime – whichdan