我想在ClojureScript上做一些基本但不是非常基本的与日期相关的操作,比如在两个日期之间获取日期。有clj-time是Joda time的包装,所以它只是Clojure。我也知道date classes in Google Closure Library。 JavaScript有许多可能性,请参阅https://stackoverflow.com/questions/802861/javascript-date-manipulation-library或https://stackoverflow.com/questions/996995/javascript-date-time-library-recommendations。我想知道是否有一种惯用的ClojureScript方法。如果没有这样的野兽,我想知道哪个JavaScript库最适合包装。
答案 0 :(得分:16)
太迟了,但对于那些通过搜索来的人来说,有cljs-time库。
答案 1 :(得分: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}
答案 2 :(得分:1)
我现在正在工作的项目使用moment.js。它与clojurescript相当好用。我建议检查一下。
答案 3 :(得分:0)
如果您想要跨平台的内容,请尝试juxt/tick
关于两个日期之间的日期,这似乎在两个平台上都有效(调用.until
的{{3}} underlying):
(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
答案 4 :(得分:0)
对于日期选择,react-select 项目有一个带有模糊日期支持的实验性 date picker。我们正在使用包裹在 cljs 中的常规 react-select
组件,似乎工作得很好。