首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >问:如何在ms中获得当前时间?

问:如何在ms中获得当前时间?
EN

Ethereum用户
提问于 2022-09-30 10:19:42
回答 2查看 17关注 0票数 0

这一部分自己的问答系列文章,分享在一个项目的工作中获得的知识,

我在寻找一种方法来做动作链接到全局时间,但获得当前的时间戳不是一个明显的任务。

EN

回答 2

Ethereum用户

回答已采纳

发布于 2022-09-30 10:19:42

在EVM中没有获得它的方法,但是有几种解决方法。

第一个是基于块的时间戳:每个时间戳应该比父时间戳大,尽管节点可以操纵时间戳--尤其是当节点向它们承诺盈利时,也可以在挖掘期间拒绝块。

第二种方法是使用块的编号,因为它们是一个接一个地排序的,并且通过知道平均块执行时间计算当前时间--不幸的是,块挖掘的时间也可能有所不同,特别是在新的ethereum更新之后。似乎块的时间戳是更好的选择。

票数 0
EN

Ethereum用户

发布于 2022-09-30 10:27:55

使用ethers.js,我知道如何在块链上获得当前时间戳的唯一方法是使用provider getBlockNumber()函数获取最新的块号,然后使用provider getBlock()函数获取最新块的详细信息。最后,当您有块时,块对象将具有时间戳属性,它给出块链上的当前时间(以秒为单位)。

如果您想要ms版本的,请将秒乘以1000。

代码语言:javascript
运行
复制
let latestBlockNumber = await provider.getBlockNumber();
let block = await provider.getBlock(latestBlockNumber);
console.log(block.timestamp);

let latestTimeStampInMs = block.timestamp * 1000;
console.log(latestTimeStampInMs);
票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/136640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档