2017-02-09 3 views
0

Firefoxはこのjsコードに関しては何とか動作しません。ただし、Chromeでは正常に動作します。duedateカウンタはChromeでは動作しますがFirefoxでは動作しませんNaNエラー

  • これはdocument.getElementById("days").innerText = d;と関係しますか?

  • 解析する必要がありますか?私がそれを行う必要がある場合、idkを行う方法..ハハ

  • 主な質問は、これをFirefoxで動作させる方法です?

<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

答えて

0

クロム日付オブジェクトと他のブラウザよりも柔軟です。 due_dateeventDateの形式がconsole.logであることを確認してください。 getTime()はミリ秒を返しますので、reservation.due_dateもミリ秒単位で指定する必要があります。

+0

どのように私はこのdatetimeをミリ秒に変換できますか? 。 jsスクリプトではどうすればreservation.due_dateを取得してミリ秒単位で変換できますか? –

+0

年、月、日、分などのdue_dateから日付の部分を取得してから、 'var eventDate = new Date(year、month、日) ' – Shannon

関連する問題