ClojureScript日期时间库

11
我想在ClojureScript上进行一些基本但不是非常基本的日期相关操作,例如获取两个日期之间的天数。有clj-time这个库,它是Joda time的一个包装器,所以只适用于Clojure。我还了解到Google Closure Library中的date classes。对于JavaScript,有很多可能性,请参见https://stackoverflow.com/questions/802861/javascript-date-manipulation-libraryhttps://stackoverflow.com/questions/996995/javascript-date-time-library-recommendations。我想知道是否有一种习惯用法适用于ClojureScript。如果没有这样的东西,我想知道哪个JavaScript库最适合封装。
5个回答

17

虽然有些晚了,但对于通过搜索来的人,可以使用cljs-time库。


11

http://momentjs.com 对于日期计算来说易于使用。

例如,计算两个日期之间的天数差异:

(defn mom []
  (let [log (fn [& args] (.log js/console (apply str args)))
        days-ago (fn [n] (.subtract (js/moment) "days" n))]
    (log {:difference (.diff (days-ago 7) (days-ago 28) "days")})))

(mom) ==> {:difference 21}

请注意,Moment使用可变日期。 - Jacob

1

我目前正在工作的项目中使用moment.js。它在clojurescript中基本上运行良好。我建议你去看一下。


1

如果您想要跨平台的东西,请尝试juxt/tick

关于两个日期之间的天数,这似乎在两个平台上都可以工作(调用底层.until):

(require '[tick.alpha.api :as t])
(require '[tick.core])
(.until (t/new-date 2019 1 1) (t/new-date 2019 3 5) (tick.core/unit-map :days))
;=> 63

0

对于日期选择,react-select项目有一个实验性的date picker,支持模糊日期。我们正在使用常规的react-select组件包装在cljs中,似乎运行得很好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接