Solidity的默認(rèn)時(shí)間單位是秒(seconds
),在時(shí)間單位之間只泼,數(shù)字后面帶有 seconds
遇汞、 minutes
、 hours
呻逆、 days
和 weeks
的可以進(jìn)行換算夸赫,基本換算關(guān)系如下:
1 == 1 seconds
1 minutes == 60 seconds
1 hours == 60 minutes
1 days == 24 hours
1 weeks == 7 days
由于閏秒造成的每年不都是 365 天、每天不都是 24 小時(shí) 咖城,所以如果你要使用這些單位計(jì)算日期和時(shí)間茬腿,請(qǐng)注意這個(gè)問題。因?yàn)殚c秒是無法預(yù)測(cè)的宜雀,所以需要借助外部的預(yù)言機(jī)(oracle切平,是一種鏈外數(shù)據(jù)服務(wù))來對(duì)一個(gè)確定的日期代碼庫進(jìn)行時(shí)間矯正。
注意:
years
已經(jīng)在 0.5.0 版本去除了辐董,因?yàn)殚c年的原因悴品。
這些后綴不能直接用在變量后邊。如果想用時(shí)間單位(例如 days
)來將輸入變量換算為時(shí)間简烘,你可以用如下方式來完成:
function f(uint start, uint daysAfter) public {
if (block.timestamp >= start + daysAfter * 1 days) {
// ...
}
}