0
由于IO can not be used inside Yesod Template,如何在页面上显示简单的当前时间?如何使用Yesod模板语言显示当前时间?
在我.hamlet文件,是这样的:
<h2>
#{show $ getCurrentTime }
getCurrentTime :: IO UTCTime
由于IO can not be used inside Yesod Template,如何在页面上显示简单的当前时间?如何使用Yesod模板语言显示当前时间?
在我.hamlet文件,是这样的:
<h2>
#{show $ getCurrentTime }
getCurrentTime :: IO UTCTime
换句话说,你需要的模板之外运行IO动作。
这外意味着模板的处理。所以我会这样写。
-- Home.hs
getHomeR = do
time <- liftIO getCurrentTime
defaultLayout $(widgetFile "homepage")
-- homepage.hamlet
<h2>#{show time}
这个'getCurrentTime'以UTC还是本地时区返回?用户会在浏览器中看到什么时区? – frt
@frt你可以用ghci来测试它,'import Data.Time'' getCurrentTime'。 它会告诉我们'2017-07-28 23:32:26.2083905 UTC''it :: UTCTime'。 – jeiea