【Time】

Solidity 還提供時間的語法,只是跟我們平常熟知的表示形式不同,Solidity 內表示時間的方式是 UNIX 時間 (Unix time)

所謂的 UNIX 時間是從 UTC 1970 年 1 月 1 日 0 時 0 分 0 秒起至現在的總秒數,不考慮閏秒。

pragma solidity ^0.8.11;

contract MyTime {
    // 1 == 1 seconds
    // 1 minutes == 60 seconds
    // 1 hours == 60 minutes
    // 1 days == 24 hours
    // 1 weeks == 7 days
    uint256 public levelUpRate = 1 days; // 回傳秒
    uint public constant FIRST_MINTING_DATE = 1640995200;
    // uint time = now;
}

其中在 Solidity 0.7.0 之前我們還可以使用語法 now 得到當前的時間,而 now 與 我們會來會提到的 block.timestamp 是一樣的,因為 now 代表的就是當前的 block timestamp。

由於當前版本已經超過 0.7.0,所以要表示當前時間只能使用 block.timestamp。至於什麼是 block timestamp 之後在全局變量的地方會介紹。

Last updated

Was this helpful?