2017-02-09 7 views
0

Firefox funktioniert irgendwie nicht, wenn es um diesen js-Code geht. In Chrome funktioniert es jedoch einwandfrei.Duedate Counter funktioniert in Chrome aber nicht Firefox NaN Fehler

  • Hat das mit document.getElementById("days").innerText = d; zu tun?

  • Muss ich parseInt? idk wie das geht, wenn ich das tun muss .. haha ​​

  • Die wichtigste Frage ist, wie man dies in Firefox zu arbeiten?

<div id="dueDate-counter"> 
 
    \t <table> 
 
    \t \t <tr> 
 
    \t \t \t <td>days</td> 
 
    \t \t \t <td>hrs</td> 
 
    \t \t \t <td>mns</td> 
 
    \t \t \t <td>secs</td> 
 
    \t \t </tr> 
 
    \t \t <tr> 
 
    \t \t \t <td id="days"></td> 
 
    \t \t \t <td id="hours"></td> 
 
    \t \t \t <td id="minutes"></td> 
 
    \t \t \t <td id="seconds"></td> 
 
    \t \t </tr> 
 

 
    \t </table> 
 

 
    \t <script type="text/javascript"> 
 
    \t \t function countdown() { 
 
    \t \t \t var now = new Date(); 
 
    \t \t \t var eventDate = new Date("<%= reservation.due_date %>"); 
 
    \t \t \t <%= puts "here is reservation !!!!!!!" %>; 
 
    \t \t \t <%= puts "#{reservation.due_date}" %>; 
 
    \t \t \t var currentTime = now.getTime(); 
 
    \t \t \t var eventTime = eventDate.getTime(); 
 

 
    \t \t \t var remTime = eventTime - currentTime; 
 

 
    \t \t \t var s = Math.floor(remTime/1000); 
 
    \t \t \t var m = Math.floor(s/60); 
 
    \t \t \t var h = Math.floor(m/60); 
 
    \t \t \t var d = Math.floor(h/24); 
 

 
    \t \t \t h %= 24; 
 
    \t \t \t m %= 60; 
 
    \t \t \t s %= 60; 
 

 
    \t \t \t h = (h < 10) ? "0" + h : h; 
 
    \t \t \t m = (m < 10) ? "0" + m : m; 
 
    \t \t \t s = (s < 10) ? "0" + s : s; 
 

 
    \t \t \t document.getElementById("days").textContent = d; 
 
    \t \t \t document.getElementById("days").innerText = d; 
 

 
    \t \t \t document.getElementById("hours").textContent = h; 
 
    \t \t \t document.getElementById("minutes").textContent = m; 
 
    \t \t \t document.getElementById("seconds").textContent = s; 
 

 
    \t \t \t \t setTimeout(countdown, 1000); 
 
    \t \t \t \t \t } 
 

 
    \t \t \t \t countdown(); 
 

 
    \t </script> 
 

 
    </div>

enter image description here

enter image description here

Antwort

0

Chrome ist flexibler als andere Browser mit Date-Objekte. Stellen Sie sicher, dass Ihre due_date und eventDate das gleiche Format mit console.log haben. getTime() gibt Millisekunden zurück, also muss Ihr reservation.due_date auch in Millisekunden sein.

+0

Wie könnte ich dieses Datum in Millisekunden konvertieren? . im js-skript wie könnte ich reservation.due_date nehmen und es in Millisekunden umwandeln? Ich dachte, ich hätte das schon mit der '.getTime()' –

+0

Sie können die Teile des Datums von 'Fälligkeitsdatum' wie Jahr, Monat, Tag, Minuten und dann' var eventDate = neues Datum (Jahr, Monat, Tag) ' – Shannon

Verwandte Themen