【问题标题】:How to show current time with Yesod Template languages?如何使用 Yesod 模板语言显示当前时间?
【发布时间】:2017-03-01 08:16:40
【问题描述】:

由于IO can not be used inside Yesod Template,如何在页面上显示简单的当前时间?

在我的 .hamlet 文件中,类似于:

<h2>
 #{show $ getCurrentTime } 

getCurrentTime :: IO UTCTime

【问题讨论】:

    标签: haskell yesod


    【解决方案1】:

    换句话说,您需要在模板之外运行 IO 操作。

    那个outside是指模板的handler。所以我会这样写。

    -- Home.hs
    getHomeR = do
      time <- liftIO getCurrentTime
      defaultLayout $(widgetFile "homepage")
    
    -- homepage.hamlet
    <h2>#{show time}
    

    【讨论】:

    • 这个getCurrentTime 以UTC 还是本地时区返回时间?用户将在浏览器中看到哪个时区?
    • @frt 你可以用 ghci 测试一下,import Data.TimegetCurrentTime。它会告诉我们2017-07-28 23:32:26.2083905 UTCit :: UTCTime
    猜你喜欢
    • 2011-09-15
    • 1970-01-01
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多