0

如何使用 GHCJS 获取当前时间?我应该尝试访问Date或使用 Haskell 基础库吗?GHCJS 基础库中是否有实用程序函数?

4

2 回答 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并将其转换为Stringusing fromJSString

JSInteger最终在 GHCJS 中可能会有 a ,或者JSString可能成为 的一个实例Read,所以如果你以后正在阅读这篇文章,请尝试一些更优雅的东西!

于 2015-11-09T17:09:19.760 回答