Javascript - 将日期转换为 float 的简单方法,与 SQL Server 相同

标签 javascript date type-conversion

SQL Server 可以将日期转换为 float 。 例如“2019-05-23 17:33:16.780”将为 43606.731444213

如果我没记错的话:

  • 整数是自纪元(1900/01/01 开始)以来过去的天数
  • 小数部分是自午夜以来过去一天的百分比。

有没有一种简单的方法可以在 JavaScript 中进行相同的转换? 我不希望 float 从 JS 纪元开始。

最佳答案

您可以使用 JavaScript Date 原型(prototype)并定义您自己的初始日期:

var date = new Date('2019-05-23 17:33:16.780');
var init = new Date('1900-01-01');

console.log((date - init) / (1000 * 60 * 60 * 24));
// 43606.68977754629

除以1000 * 60 * 60 * 24是将毫秒转换为天。

或者,您可以使用 moment.js图书馆:

var date = moment('2019-05-23 17:33:16.780');
var init = moment('1900-01-01');

console.log(date.diff(init) / (1000 * 60 * 60 * 24));
// 43606.69922199074
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.js"></script>

关于Javascript - 将日期转换为 float 的简单方法,与 SQL Server 相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56268683/

相关文章:

c# - 如何将十六进制 "string"转换为 .NET 中的实际十六进制值?

javascript - $q.defer() then 的 then

javascript - 是否可以从 rxjs-timeout-error 中获取请求信息?

Java 8 减去日期返回 1 天

JavaScript 获取 GMT+0 日期?

string - 在 Haskell 中读取字符串到 Int 的性能(Bytestring vs [Char])

javascript - 两个事件监听器之间 : How do I pass my function without using trigger()?

javascript - 当应用程序通过实时服务器运行时,localStorage 是否应该保留?

r - 基于多个变量创建索引

c++ - 有可能以这种方式串流吗?从字符串转换为整数?