私は変換を行うためにこのコードを持っています:
var date = new Date(1900, 0, 0, 0, 0, 0);
date.setDate(date.getDate() + row.values[1]);
var heure = row.values[5].toString().split(':');
date.setHours(heure[0]);
date.setMinutes(heure[1]);
console.log(date.toString());
row.values 1には、Excel 形式の日付が含まれています。この関数は、最初の日付の次の日を返します。なぜですか?
EDIT
Date オブジェクトはうるう年のように 1900 年をベンチマークしません
var date = new Date(1900, 0, 0, 0, 0, 0);
date.setDate(date.getDate() + 59);
1900 年 2 月 28 日水曜日
var date = new Date(1900, 0, 0, 0, 0, 0);
date.setDate(date.getDate() + 60);
私にください: 1900 年 3 月 1 日木曜日
もしかしてjavascriptのバグ?
編集 Microsoft Excel 2007 では、1900 年がうるう年ではなく、1900 年 2 月 29 日が有効な日付です。
詳細については、 http://support.microsoft.com/kb/214326を参照してください。