2010-12-07 18 views
0
// How many days between two dates 
function gDaysBetweenDates(date1, date2) { 

    var date1_ms = date1.getTime(); 
    var date2_ms = date2.getTime(); 


    return Math.round(Math.abs(date1_ms - date2_ms)/(1000 * 60 * 60 * 24)); 

} 

日付1と日付2が渡されるのような値を持つDateオブジェクトです:Javascriptの機能未定義

火曜2010年3月9日00:00:00 GMT + 0000(GMT 標準時)

時間を抽出しようとすると問題が発生し、getTimeは未定義です。渡された日付で新しい日付オブジェクトを作成しようとすると、次のようになります。

var dateNew = new Date(date1); 

エラーが発生します。日付は無効な形式です。

+0

'新しい日付( '2010年3月9日00:00:00 GMT + 0000(GMT標準時)');'が動作します。渡された値が '未定義 'でないことを確認してください。(' gDaysBetweenDates'の中に '警告') – Matt

+0

これらの値は実際の日付インスタンスではないと思われます。 – Pointy

+0

日付文字列の生成方法?そのフォーマットを制御しますか? –

答えて

1

最後の問題については、date1のオブジェクトの種類を確認するためにdate1.constructorを実行してください。それが数字の場合は、書いたとおりに動作するはずです。文字列の場合は、日付としてフォーマットされていることを確認する必要があります。数字以外の文字列や文字列の場合は、型が無効です。

また、date1がnullでないことを確認してください。

0

いくつかのタイプの問題があるようです。 Dateコンストラクタは、dateオブジェクトではなく、ミリ秒の数値または日付文字列のみを受け入れます。他のエラーは、実際には何かがDateオブジェクトであると思われるように聞こえます。 (null?文字列?)

関連する問題