我有这个代码进行转换:
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 中 29/02/1900 是有效日期而不是 1900 不是闰年
有关详细信息,请参阅http://support.microsoft.com/kb/214326