这是什么类型的时间戳?如何使用JavaScript将其转换为人类可读的时间戳

这是什么类型的时间戳?如何使用JavaScript将其转换为人类可读的时间戳,javascript,csv,timestamp,Javascript,Csv,Timestamp,我收到了数百个CSV文件,都有我不认识的时间戳。我一直在努力找到它是什么,并尝试使用JavaScript转换它们,但到目前为止我没有运气。 我收到的所有指示都是这样的:“时间戳39845.03表示日期2009年2月1日和时间00:45。”我被告知这是Microsoft的时间戳。看起来是自1900年1月1日以来经过的天数 var date = new Date('01 jan 1900'); date.setTime(date.getTime() + 39845.03 * 24 * 60 *

我收到了数百个CSV文件,都有我不认识的时间戳。我一直在努力找到它是什么,并尝试使用JavaScript转换它们,但到目前为止我没有运气。
我收到的所有指示都是这样的:“时间戳39845.03表示日期2009年2月1日和时间00:45。”我被告知这是Microsoft的时间戳。

看起来是自1900年1月1日以来经过的天数

 var date = new Date('01 jan 1900');
 date.setTime(date.getTime() + 39845.03 * 24 * 60 * 60 *1000);
将在javascript中完成


很明显,额外的乘数将其转换为毫秒。

看起来是自1900年1月1日以来经过的天数

 var date = new Date('01 jan 1900');
 date.setTime(date.getTime() + 39845.03 * 24 * 60 * 60 *1000);
将在javascript中完成


很明显,额外的乘数可以将其转换为毫秒。

这是
Microsoft Excel
的时间戳格式。这是某种特别的东西。 1.1.1900 0:0等于1.0。 2.1.1900 0:0等于2.0

逗号后面的部分表示时间

他们给出了一个公式,只需要将其倒置,以适应转换

function convertExcelTimeToUnix(excelTime) {
    return (excelTime - 25569) * 86400;
}
结果是一个UNIX时间戳,例如可以传递给
Date
的构造函数

var realDate = new Date(convertExcelTimeToUnix(excelTime))

这是Microsoft Excel的时间戳格式。这是某种特别的东西。 1.1.1900 0:0等于1.0。 2.1.1900 0:0等于2.0

逗号后面的部分表示时间

他们给出了一个公式,只需要将其倒置,以适应转换

function convertExcelTimeToUnix(excelTime) {
    return (excelTime - 25569) * 86400;
}
结果是一个UNIX时间戳,例如可以传递给
Date
的构造函数

var realDate = new Date(convertExcelTimeToUnix(excelTime))

这些时间戳的最大小数位数是多少?是否需要使用时间戳数据?时间戳字段通常用于管理并发性。@digitalbath从几个文件中快速查看,似乎是2,如上例所示。@BonyT是的,我需要一种人类可读的格式的日期和时间。我将它们放在indexeddb中,然后通过Javascript将它们显示在网页上的表格中。你确定这些不是星号吗?这些时间戳的最大小数位数是多少?你需要使用时间戳数据吗?时间戳字段通常用于管理并发性。@digitalbath从几个文件中快速查看,似乎是2,如上例所示。@BonyT是的,我需要一种人类可读的格式的日期和时间。我将它们放入indexeddb,然后通过Javascript在网页上的表格中显示它们。你确定这些不是星号吗?看起来像Excel使用的内部格式,小心它们故意弄错的闰年:是的,我认为你是对的。根据dateandtime.com上的计算器,它是从1899年12月31日开始的。现在我的下一个问题是编写一些JS来转换它,棘手的部分是小数点后的部分…看起来像Excel使用的内部格式,小心闰年他们故意出错:是的,我认为你是对的。根据dateandtime.com上的计算器,它是从1899年12月31日开始的。现在我的下一个问题是编写一些JS来转换它,棘手的部分是小数点后的部分。。。