Javascript 可以用浮点格式表示日期时间吗?
基本上我使用两种语言,一种是ruby,另一种是javascript。 在ruby中,您可以执行以下操作:Javascript 可以用浮点格式表示日期时间吗?,javascript,node.js,datetime,Javascript,Node.js,Datetime,基本上我使用两种语言,一种是ruby,另一种是javascript。 在ruby中,您可以执行以下操作: date.to_f -->并给出日期的浮点表示,如下所示: 1541393269.3742561 但是当你用javascript说: Date.now() 154237702445 我也尝试过使用MomentJS,但仍然不能完全确定如何反映时间的浮动表示 有没有一种方法可以像ruby一样用浮点数在javascript中表示日期?使用,可以获得比日期更高的精度。现在(),尽管为了缓解Sp
date.to_f
-->并给出日期的浮点表示,如下所示:
1541393269.3742561
但是当你用javascript说:
Date.now()
154237702445
我也尝试过使用MomentJS,但仍然不能完全确定如何反映时间的浮动表示
有没有一种方法可以像ruby一样用浮点数在javascript中表示日期?使用,可以获得比日期更高的精度。现在()
,尽管为了缓解Spectre,一些浏览器任意限制此API的精度,所以如果确实需要精确值,请小心:
const to_f=()=>(performance.timeOrigin+performance.now())/1000;
console.log(to_f())代码>使用,您可以获得比日期更高的精度。现在()
,但为了减轻Spectre的影响,一些浏览器任意限制此API的精度,因此如果确实需要精确值,请小心:
const to_f=()=>(performance.timeOrigin+performance.now())/1000;
console.log(to_f())代码>JavaScript在内部使用自纪元以来的毫秒
虽然我不熟悉Ruby,但它看起来像是日期。to_f
给出了一个从纪元开始以秒为单位的数字,您必须将这个数字乘以1000才能与JavaScript的日期兼容
var rubyTime=1541393269.3742561;
var jsTime=1542377024455;
console.log(新日期(rubyTime*1000));
console.log(新日期(jsTime))代码>JavaScript在内部使用自纪元以来的毫秒
虽然我不熟悉Ruby,但它看起来像是日期。to_f
给出了一个从纪元开始以秒为单位的数字,您必须将这个数字乘以1000才能与JavaScript的日期兼容
var rubyTime=1541393269.3742561;
var jsTime=1542377024455;
console.log(新日期(rubyTime*1000));
console.log(新日期(jsTime))
Date.now()有什么问题吗?或者您的问题是如何获得比毫秒更高的精度?以保持与旧版的兼容性code@t.niese你有没有看到ruby表示法有17个浮点数?那个日期。现在()只有13位长?我想你只要除以1000就可以了Date.now()
只是从纪元开始的毫秒数。@juangarcia这就是为什么我问你的问题是关于准确性的。Ruby以微秒为单位显示Unix epoche之后的日期,以毫秒为单位显示日期。date。现在
以毫秒为单位返回Unix epoche之后的日期。因此,使用Date.now()/1000
时,它的比例与使用to_f
时的比例相同。浮点没有数字,它们(大多数情况下)有一个近似值。Date.now()/1000有什么问题?或者您的问题是如何获得比毫秒更高的精度?以保持与旧版的兼容性code@t.niese你有没有看到ruby表示法有17个浮点数?那个日期。现在()只有13位长?我想你只要除以1000就可以了Date.now()
只是从纪元开始的毫秒数。@juangarcia这就是为什么我问你的问题是关于准确性的。Ruby以微秒为单位显示Unix epoche之后的日期,以毫秒为单位显示日期。date。现在
以毫秒为单位返回Unix epoche之后的日期。因此,使用Date.now()/1000
时,它的比例与使用to_f
时的比例相同。浮点没有数字,它们有一个(大部分时间)近似值。这是正确的,我看到对于nodejs应该是是的,它的工作原理如下:performance.now()+performance.timeOrigin
虽然我可能会将点移到那里,但这样构造日期时间安全吗?我总是使用“时刻”是有原因的……这是正确的,我看到对于nodejs,它应该是肯定的,它看起来是这样的:performance.now()+performance.timeOrigin
虽然我可能会将点移到那里,但这样构造日期时间安全吗?我总是因为一个原因而使用片刻…再看一次,看看每个数字中有多少位数。。。这就是问题所在…看。OP已经在他们的问题中声明,他们知道这种关系。问题不在于1000的刻度,问题在于Date.now()
提供的毫秒量化值,而在Ruby中它被量化为微秒。@PatrickRoberts是真的,但并非所有浏览器都支持timeOrigin
方法,请再看一次,看看每个数字中有多少位数。。。这就是问题所在…看。OP已经在他们的问题中声明,他们知道这种关系。问题不在于1000的刻度,问题在于Date.now()
提供的毫秒量化值,而在Ruby中它被量化为微秒。@PatrickRoberts是真的,但并非所有浏览器都支持timeOrigin
方法,根据