javascript - Javascript - 以与 SQL 服务器相同的方式将日期转换为浮动的简单方法
问题描述
SQL Server 可以将日期转换为浮点数。例如 '2019-05-23 17:33:16.780' 将是 43606.731444213
如果我没有记错的话:
- 整数是自纪元以来过去的天数(从 1900 年 1 月 1 日开始)
- 小数部分是自午夜以来过去一天的百分比。
有没有一种简单的方法可以在 javascript 中进行相同的转换?我不希望浮点数从 JS 纪元开始。
解决方案
您可以使用 JavaScriptDate
原型并定义自己的初始日期:
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>
推荐阅读
- python - 此处引发了 TypeError 异常:init() 采用 2 个位置参数,但通过 Selenium 和 Python 使用显式等待给出了 3 个
- reactjs - 如何防止用户在 React-Js 网站截图
- sql - 考虑假期/周末后如何找到去年的同一天?
- c# - 为什么找不到方法 app.UseSwaggerUI(...)?
- ios - XMLHttpRequest 无法加载
由于访问控制检查 [IOS] - qt - QML 使用中间按钮在缩放图表内移动
- python - Python 抓取网页查询并将其放入 .csv
- git - 撤消 git 远程分支删除
- c# - 将数据插入数据库 c# WPF LINQ to SQL
- python - Docker/Rocker - 无法找到包 python3.8