haskell - 如何在 IHP 中处理日期?有没有 'default'的方法?

标签 haskell ihp

我正在尝试按照指南学习 IHP。我注意到,没有任何函数和其他东西可以处理日期。

例如:

我想在更新时将帖子的日期更改为“NOW()”

    action UpdatePostAction { postId } = do
        post <- fetch postId
        post
            |> buildPost
            |> validateIsUnique #title
            >>= ifValid \case
                Left post -> render EditView { .. }
                Right post -> do
                    post <- post
                        |> set #created_at '...' --  change '...' to something :)
                        |> updateRecord
                    let t = get #title post
                    setSuccessMessage $ "Post \'" <> t <> "\' updated"
                    redirectTo PostsAction

这就是问题所在:我可以用这个“设置语句”做什么来实际更改日期?或者是否有任何“已经指定”的功能可以做到这一点?

最佳答案

为了在 IHP 中处理日期和时间,我们使用 time package . 要获取当前时间,Data.Time.Clock 中有一个名为 getCurrentTime::IO UTCTime 的简单函数。

Right post -> do
  currentTime <- getCurrentTime
  post <- post
    |> set #createdAt currentTime
    |> updateRecord
   ... ​

威廉姚有一个excellent cheatsheet to the time package如果您想更深入地研究该主题,我强烈建议您阅读。我几乎总是有一个标签打开这个!

此外,在调用 set 时确保使用驼峰式命名法,IHP 会为您将其转换为 snake_case 数据库列:)

关于haskell - 如何在 IHP 中处理日期?有没有 'default'的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69104732/

相关文章:

haskell - IHP - 如何通过自定义 Web Socket Controller 在客户端之间发送和接收数据?

haskell - IHP:如何使用其他字段的值验证字段

haskell - 获取 `Include' ` 之外的记录

haskell - IHP Haskell 字段显示格式双值

haskell - 如何确定 Haskell 函数的类型?

list - 似乎无法理解 'list difference' (\\) 运算符

Haskell-以奇怪的方式组合三个函数

arrays - Haskell 实时更新和查找性能

haskell - 为什么 GHCi 不显示与 GHC 相同的错误消息

haskell - 如何更改 IHP 应用程序中的 &lt;title&gt;?