我正在使用php和JavaScript阅读excel数据。将结果存储在变量中并在页面上显示。
简单的代码示例:
var yearend = "< ? php echo ($connection->sheets[0]["cells"][2][5]); ? >";
这适用于带数字的文字和字段。但是当我将单元格格式化为&#34; Date&#34;它返回值,例如。
Excel字段为:31-Dec-2015
- JavaScript返回值:40542
我知道这是MS DATEVALUE
格式。
但我需要使用JavaScript将其转换为日期,因此它仅显示31-Dec-2015
或31 December 2015
。
简而言之:
从Excel 40542
到JavaScript 31 December 2015
。
另外,我只需要如上所述,没有尾随时间和位置,所以删除:
00:00:00 00:00 GMT
是否可以将日期修改为+1天或-1天?
答案 0 :(得分:0)
//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);
}
答案 1 :(得分:0)
使用以下php函数将datevalue转换为php时间戳。然后,您可以使用标准日期函数进行格式化,但希望
function xl2timestamp($xl_date){
return ($xl_date - 25569) * 86400;
}
答案 2 :(得分:0)
尝试
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)
}