2017-06-12 16 views
0

これはIEとEdgeではうまくいきますが、ChromeとFirefoxではNaN:NaNが表示されます。理由と正しい解決策を提示してください。 私は1時間の減少時間だけを表示しようとしています。JavaScriptはIEとEdgeで動作しますが、ChromeとFirefoxでは動作しません

<!--HERE IS MY CODE--> 
<!--THE CODE CREATIN ERROR--> 
<html> 
<head> 
<script> 
    endtime="31/12/2015"; 
    var myvar=setInterval(myfunc,1000);//function calling after every 1 second 
    var d=new Date(); 
    d.setHours(14); 
    d.setMinutes(00); 


    k=00; 
    j=01; 
    function myfunc() 
    {strong text 
     d.setSeconds(k); 
     k++; 
     if(k==60) 
     { 
      d.setMinutes(j); 
      k=00; 
      j++; 
     } 
     var t = parseFloat(Date.parse(endtime) - Date.parse(d)); 
     var seconds = Math.floor((t/1000) % 60); 
     var minutes = Math.floor((t/1000/60) % 60); 
     var hours = Math.floor((t/(1000*60*60)) % 24); 
     var days = Math.floor(t/(1000*60*60*24)); 
     document.getElementById("div1").innerHTML=minutes.toString()+":"+seconds.toString();/*HERE IT IS SAYING NAN:NAN IN CHROME AND FIREFOX*/ 
    } 
</script> 
</head> 
<body> 
<p id="demo"></p> 
<div id="div1"></div> 
</body> 
</html> 
+3

[**なぜ叫んでされていますか?**](https://meta.stackoverflow.com/questions/262688/preventing-all-caps-question-titles-and-bodies)真剣に、あなたを」 **すべての**単語を大文字にしないと、質問がはるかに読みやすくなります。 –

+0

'strong text'を含む行はJavaScriptでは無効です。また、 't'の値はNaNなので、この値を持つ数もNaN –

+0

になります。' Date.parse'はRFC2822またはISO 8601の日付を表す文字列を解析することのみが保証されています - 異なるブラウザでは、しかし、保証はありません。明らかにIE/Edgeのサポート「dd/mm/yyyy」(「31/12/2015」) - 他のブラウザではサポートされていません - [documentation](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/parse)はそれをすべて説明しています –

答えて

0

新しいアプローチから問題を解決しようとしました。

<html> 
<head> 
    <script> 

      var t = parseFloat(3600000); 

      var myvar=setInterval(myfunc,1000); 

      function myfunc() 
      { 
      if(t>0) 
      { 
      var seconds = parseFloat(Math.floor((t/1000) % 60).toString()); 
      var minutes = parseFloat(Math.floor((t/1000/60) % 60).toString()); 
      var hours = Math.floor((t/(1000*60*60)) % 24); 
      var days = Math.floor(t/(1000*60*60*24)); 
      document.getElementById("div1").innerHTML=minutes+":"+seconds; 

      t=t-1000; 
      };} 
    </script> 
</head> 
<body> 
<p id="demo"></p> 
<div id="div1"></div> 
</body> 
</html> 
関連する問題