【发布时间】:2017-03-01 08:16:40
【问题描述】:
由于IO can not be used inside Yesod Template,如何在页面上显示简单的当前时间?
在我的 .hamlet 文件中,类似于:
<h2>
#{show $ getCurrentTime }
getCurrentTime :: IO UTCTime
【问题讨论】:
由于IO can not be used inside Yesod Template,如何在页面上显示简单的当前时间?
在我的 .hamlet 文件中,类似于:
<h2>
#{show $ getCurrentTime }
getCurrentTime :: IO UTCTime
【问题讨论】:
换句话说,您需要在模板之外运行 IO 操作。
那个outside是指模板的handler。所以我会这样写。
-- Home.hs
getHomeR = do
time <- liftIO getCurrentTime
defaultLayout $(widgetFile "homepage")
-- homepage.hamlet
<h2>#{show time}
【讨论】:
getCurrentTime 以UTC 还是本地时区返回时间?用户将在浏览器中看到哪个时区?
import Data.TimegetCurrentTime。它会告诉我们2017-07-28 23:32:26.2083905 UTCit :: UTCTime。