Solidity-008-时间单位

410 阅读1分钟

背景

通过学习Solidity,然后输出文章检验自己的学习成果github仓库

基础知识

  • Solidity中自带时间单位,它们分别是
  • seconds
  • minutes
  • hours
  • days
  • weeks
  • 基本换算关系如下:
  • 1 == 1 seconds
  • 1 minutes == 60 seconds
  • 1 hours == 60 minutes
  • 1 days == 24 hours
  • 1 weeks == 7 days
  • seconds为缺省时间单位
  • Solidity 0.5.0之后,years已经被移除

例子

例子

该例子是判断当前时间是否大于合约部署后的一分钟

// SPDX-License-Identifier: MIT  
pragma solidity ^0.8.20;  
  
contract TimeUnits {  
    uint public start;  
    constructor(){  
        start = block.timestamp;  
    }  
  
    function judge() public view returns (bool) {  
        if (block.timestamp >= start + 1 minutes)  
            return true;  
        return false;  
    }  
}  

程序解析

function judge() public view returns (bool) {  
    if (block.timestamp >= start + 1 minutes)  
        return true;  
    return false;  
}  
  • 这些时间单位是不能直接用在变量后面,想要使用,必须将输入变量换算为时间