2011-02-02 22 views
0

2つの日付が選択されているページがあり、それらの包括的な違いが3番目のテキスト入力に表示されます。JavaScript IEでFirefox、ChromeなどでNaNエラーが発生しました

計算はFirefox、Chromeなどでうまく行われますが、IE6、IE7 & IE8ではNaNエラーが表示されます。

私はparseInt()、number()などを試しましたが、役に立たないです。

これはすべて一時的にhttp://www.thewebdes.co.uk/dev/hol/に保存されています。また、.rarファイルがありますので、ご希望の場合はすべてのコードをダウンロードできます。私はそれがJavaScriptで良い人には簡単なものだと思っています!

---編集---

申し訳ありませんが、みんな、

$('#firstday, #lastday').datepicker({ 
    showOn: 'both', 
    buttonImage: 'img/cal.gif', 
    dateFormat: 'dd/mm/yy', 
    onSelect: function(){ 
     // Date will give time difference in miliseconds, divide with 1000*60*60*24 
     var firstday = new Date($("#firstday").val().split("/").reverse().join(",")); 
     var lastday = new Date($("#lastday").val().split("/").reverse().join(",")); 
     // Remove weekend days from count 
     var weekend_count = 0; 
     for (i = firstday.valueOf(); i <= lastday.valueOf(); i+= 86400000) { 
     var temp = new Date(i); 
     if (temp.getDay() == 0 || temp.getDay() == 6) { 
      weekend_count++; 
     } 
     } 
     var totaldays = ((lastday - firstday)/86400000) + 1 - weekend_count; 
     $('#totaldays').val(parseInt(totaldays)); // parseInt as sometimes, with a long gap between first and last, a decimal number is displayed. Ok, people wont be booking 120 day holidays, but it keeps things proper 
    } 
    }); 
+0

var firstday = new Date($("#firstday").val().split("/").reverse().join(",")); var lastday = new Date($("#lastday").val().split("/").reverse().join(",")); 

を変更する方法ちょうどここ*関連*コードを掲示するでしょうか?たぶんIEはちょうど2つの 'Date'オブジェクトを減算するのが好きではありません。ミリ秒単位で表現してみてください。 –

+0

人を別のサイトに誘導する代わりに、ここにコードを掲載してください。 – Oded

+0

問題はおそらくfirefoxで動作するデータの "日付文字列"にありますが、ieではありません。 – Raynos

答えて

1

の代わりにあなたにDateを与え、この有線コード$("#firstday").val()(それはあなたにNaNを与える)を使用jquery.uiのgetDate方法を使用して、オブジェクト。だから、

var firstday = $("#firstday").datepicker('getDate'); 
var lastday = $("#lastday").datepicker('getDate'); 
+0

はい、素晴らしいです。それは私の週末のカウントを壊している。何かご意見は? –

+0

いいえ、それは残念です。私はそれをコメントして気付かなかった! –

関連する問題