【问题标题】:Convert excel DATEVALUE to javascript date将excel DATEVALUE转换为javascript日期
【发布时间】:2015-09-29 08:12:46
【问题描述】:

我正在使用 php 和 JavaScript 读取 excel 数据。将结果存储在变量中并在页面上显示。

简单代码示例:

var yearend = "< ? php echo ($connection->sheets[0]["cells"][2][5]); ? >";

这适用于带有数字的文本和字段。但是当我将单元格格式化为“日期”时,它会返回值,例如。

Excel 字段为:31-Dec-2015 - JavaScript 返回值:40542

我知道这是 MS DATEVALUE 格式。

但我需要使用 JavaScript 将其转换为日期,因此它只显示 31-Dec-201531 December 2015

简而言之:

从 Excel 40542 到 JavaScript 31 December 2015

另外,我只需要如上所述,没有尾随时间和地点,所以删除:

00:00:00 00:00 GMT

还可以将日期修改为+1天或-1天吗?

【问题讨论】:

标签: javascript php excel date


【解决方案1】:
//Convert Excel dates into JS date objects

//@param excelDate {Number}
//@return {Date}

function getJsDateFromExcel(excelDate) {

 // JavaScript dates can be constructed by passing milliseconds
 // since the Unix epoch (January 1, 1970) example: new Date(12312512312);

 // 1. Subtract number of days between Jan 1, 1900 and Jan 1, 1970, plus 1  (Google "excel leap year bug")             
// 2. Convert to milliseconds.

 return new Date((excelDate - (25567 + 1))*86400*1000);

 }

【讨论】:

  • 感谢您的帮助。上面确实将 datevalue 转换为 java date,但它是错误的日期。 var yearend = new Date(("sheets[0]["cells"][2][5]); ?>" - (25569 - 1)) * 86400*1000);返回:2010 年 12 月 31 日星期五 00:00:00 GMT+0000 (GMT) 应该是 2015 年而不是 2010 年。有什么想法吗?
  • 嗨,伙计们,我已经设法得到日期,但现在它出现在 Thu Apr 03 2014 01:00:00 GMT+0100 (BST) 如何将其格式化为 4 月 3 日2014 年?
【解决方案2】:

使用以下 php 函数将 datevalue 转换为 php 时间戳。然后,您可以使用标准日期函数来格式化您希望的格式

function xl2timestamp($xl_date){
    return ($xl_date - 25569) * 86400;
}

【讨论】:

    【解决方案3】:

    试试这个

    toDate(serialDate, time = false) {
        let locale = navigator.language;
        let offset = new Date(0).getTimezoneOffset();
        let date = new Date(0, 0, serialDate, 0, -offset, 0);
        if (time) {
            return serialDate.toLocaleTimeString(locale)
        }
        return serialDate.toLocaleDateString(locale)
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-30
      • 2013-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-14
      • 2010-12-18
      相关资源
      最近更新 更多