11

我想在 ClojureScript 上做一些基本但不是非常基本的与日期相关的操作,比如获取两个日期之间的天数。有clj-time是Joda time的包装器,所以它只是 Clojure。我也知道Google Closure Library 中的日期类。JavaScript 有很多可能性,请参阅https://stackoverflow.com/questions/802861/javascript-date-manipulation-libraryhttps://stackoverflow.com/questions/996995/javascript-date-time-library-recommendations。我想知道是否有一种惯用的 ClojureScript 方式。如果没有这样的野兽,我想知道哪个 JavaScript 库最适合包装。

4

5 回答 5

17

为时已晚,但是对于那些通过搜索来的人来说,有cljs-time库。

于 2014-12-23T18:11:15.890 回答
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}
于 2013-07-10T14:50:31.390 回答
1

我目前正在工作的项目使用 moment.js。它与 clojurescript 一起工作得很好。我建议检查一下。

于 2013-07-09T09:18:28.970 回答
0

如果你想要跨平台的东西,试试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
于 2019-08-21T04:51:27.593 回答
0

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

于 2021-01-20T12:04:33.690 回答