如何使用 GHCJS 获取当前时间?我应该尝试访问Date
或使用 Haskell 基础库吗?GHCJS 基础库中是否有实用程序函数?
问问题
138 次
2 回答
4
该Data.Time.Clock
模块似乎运行良好:
import Data.Time.Clock (getCurrentTime)
import Data.Time.Format -- Show instance
main = do
now <- getCurrentTime
print now
于 2015-12-04T11:55:26.483 回答
0
我目前找到的解决方案非常难看,但它对我有用,所以也许它可以为某人节省一些时间:
{-# LANGUAGE JavaScriptFFI #-}
import GHCJS.Types( JSVal )
import GHCJS.Prim( fromJSString )
foreign import javascript unsafe "Date.now()+''" dateNow :: IO (JSVal)
asInteger = read (fromJSString dateNow) :: Integer -- this happens in IO
丑陋来自于JSInteger
在 GHCJS 中没有找到一个类型,为了得到Date.now()
一个长整数的结果,需要这个类型。所以我需要生成一个字符串,将字符串连接到Date.now()
Javascript 中的结果。在这一点上,我可以得到一个JSString
结果,但这不是一个这样的例子,Read
所以使用read
是行不通的。所以我得到 aJSValue
并将其转换为String
using fromJSString
。
JSInteger
最终在 GHCJS 中可能会有 a ,或者JSString
可能成为 的一个实例Read
,所以如果你以后正在阅读这篇文章,请尝试一些更优雅的东西!
于 2015-11-09T17:09:19.760 回答