首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Javascript将Excel日期序列号转换为日期

使用Javascript将Excel日期序列号转换为日期
EN

Stack Overflow用户
提问于 2013-04-26 13:43:15
回答 8查看 39.2K关注 0票数 38

我有以下javascript代码,可以将日期(字符串)转换为Microsoft Excel中使用的日期序列号:

代码语言:javascript
复制
function JSDateToExcelDate(inDate) {

    var returnDateTime = 25569.0 + ((inDate.getTime() - (inDate.getTimezoneOffset() * 60 * 1000)) / (1000 * 60 * 60 * 24));
    return returnDateTime.toString().substr(0,5);

}

那么,我该怎么做呢?(这意味着将Microsoft Excel中使用的日期序列号转换为日期字符串的Javascript代码?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2013-04-26 17:55:29

试试这个:

代码语言:javascript
复制
function ExcelDateToJSDate(serial) {
   var utc_days  = Math.floor(serial - 25569);
   var utc_value = utc_days * 86400;                                        
   var date_info = new Date(utc_value * 1000);

   var fractional_day = serial - Math.floor(serial) + 0.0000001;

   var total_seconds = Math.floor(86400 * fractional_day);

   var seconds = total_seconds % 60;

   total_seconds -= seconds;

   var hours = Math.floor(total_seconds / (60 * 60));
   var minutes = Math.floor(total_seconds / 60) % 60;

   return new Date(date_info.getFullYear(), date_info.getMonth(), date_info.getDate(), hours, minutes, seconds);
}

为您定制:)

票数 65
EN

Stack Overflow用户

发布于 2014-03-12 21:23:32

我为你写了一句话:

代码语言:javascript
复制
function ExcelDateToJSDate(date) {
  return new Date(Math.round((date - 25569)*86400*1000));
}
票数 42
EN

Stack Overflow用户

发布于 2018-10-02 06:38:42

虽然我在这个讨论开始几年后偶然发现了这个问题,但我可能对最初的问题有一个更简单的解决方案--这里是我最终将Excel“自1899-12-30以来的天数”转换为我需要的JS日期的方法:

代码语言:javascript
复制
var exdate = 33970; // represents Jan 1, 1993
var e0date = new Date(0); // epoch "zero" date
var offset = e0date.getTimezoneOffset(); // tz offset in min

// calculate Excel xxx days later, with local tz offset
var jsdate = new Date(0, 0, exdate-1, 0, -offset, 0);

jsdate.toJSON() => '1993-01-01T00:00:00.000Z'

本质上,它只是构建一个新的Date对象,通过添加Excel天数(从1开始),然后通过负的本地时区偏移量调整分钟数来计算该对象。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16229494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档