如何在 IHP 中使用日期?有没有'default'的方法?
How to work with dates in IHP ? Is there any 'default' ways?
我正在尝试按照指南学习 IHP。我注意到,没有任何函数和其他东西可以处理日期。
例如:
我想在更新时将 post 的日期更改为 '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
这就是问题所在:我可以用这个 'set-statement' 做什么来实际更改日期?或者是否有任何 'already-specified' 功能可以做到这一点?
为了在 IHP 中处理日期和时间,我们使用 time
package。
要获取当前时间,Data.Time.Clock
中有一个名为 getCurrentTime :: IO UTCTime
.
的简单函数
Right post -> do
currentTime <- getCurrentTime
post <- post
|> set #createdAt currentTime
|> updateRecord
...
William Yao 有一个 excellent cheatsheet to the time package 如果您想更深入地研究这个主题,我强烈推荐它。我几乎总是有一个标签打开这个!
此外,在调用 set
时确保使用驼峰式命名法,IHP 会为您将其转换为 snake_case 数据库列:)
我正在尝试按照指南学习 IHP。我注意到,没有任何函数和其他东西可以处理日期。
例如:
我想在更新时将 post 的日期更改为 '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
这就是问题所在:我可以用这个 'set-statement' 做什么来实际更改日期?或者是否有任何 'already-specified' 功能可以做到这一点?
为了在 IHP 中处理日期和时间,我们使用 time
package。
要获取当前时间,Data.Time.Clock
中有一个名为 getCurrentTime :: IO UTCTime
.
Right post -> do
currentTime <- getCurrentTime
post <- post
|> set #createdAt currentTime
|> updateRecord
...
William Yao 有一个 excellent cheatsheet to the time package 如果您想更深入地研究这个主题,我强烈推荐它。我几乎总是有一个标签打开这个!
此外,在调用 set
时确保使用驼峰式命名法,IHP 会为您将其转换为 snake_case 数据库列:)