This doesn’t work in IE. Forever – 00:00:00
Works in Chrome, Firefox.
Why?
How can I fix it?
function timer()
{
var now = new Date();
var enddate = new Date("07,12,2012,23:00:00");
var totalRemains = (enddate.getTime()-now.getTime());
if (totalRemains>1)
{
var RemainsSec=(parseInt(totalRemains/1000));
var RemainsFullDays=(parseInt(RemainsSec/(24*60*60)));
var secInLastDay=RemainsSec-RemainsFullDays*24*3600;
var RemainsFullHours=(parseInt(secInLastDay/3600));
if (RemainsFullHours<10){RemainsFullHours="0"+RemainsFullHours};
var secInLastHour=secInLastDay-RemainsFullHours*3600;
var RemainsMinutes=(parseInt(secInLastHour/60));
if (RemainsMinutes<10){RemainsMinutes="0"+RemainsMinutes};
var lastSec=secInLastHour-RemainsMinutes*60;
if (lastSec<10){lastSec="0"+lastSec};
var mcend = Date.parse("Jan 1, 2009, 00:00:00");
var mcnow = now.getTime();
var mc = ((mcend-mcnow)/10).toFixed(0).substr(8);
document.getElementById('timer').innerHTML = '<p class="timeline">TIME LEFT: '+ RemainsFullHours+":"+RemainsMinutes+":"+lastSec+'</p>';
setTimeout("timer()",10);
}
else {document.getElementById("timer").innerHTML = '<p class="timeline">TIME LEFT: 00:00:00</p>';}
}
<body onload="timer();">
Can you help me please?
The problem is in this line:
This is not a date format. Firefox is heroically making sense out of it, don’t expect Internet Explorer to help you out the same, IE is ruthless, he walks alone.
The
Dateobject constructor takes several parameters:When using the
dateStringoption, your date string must conform to the RFC 2822 specification; it works if you use a supported format:AND, never, never, never pass a string to
setTimeout, pass it a function reference instead:Try it here: http://jsfiddle.net/bVCMe/
Documentation
window.setTimeouton MDN – https://developer.mozilla.org/en/DOM/window.setTimeoutDateon MDN – https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/