2013-06-11 18 views
9

Chciałbym wykonać podstawowe, ale nie bardzo podstawowe operacje związane z datami na ClojureScript, takie jak uzyskiwanie dni między dwiema datami. Jest clj-time, który jest opakowaniem około Joda time, więc jest to tylko Clojure. Jestem również świadomy date classes in Google Closure Library. Istnieje wiele możliwości JavaScript, zobacz https://stackoverflow.com/questions/802861/javascript-date-manipulation-library lub https://stackoverflow.com/questions/996995/javascript-date-time-library-recommendations. Zastanawiam się, czy jest na to idiomatyczny sposób ClojureScript. Jeśli nie ma takiej bestii, zastanawiam się, która biblioteka JavaScript byłaby najlepszym kandydatem do zawijania.Biblioteka czasowa ClojureScript

Odpowiedz

11

http://momentjs.com jest łatwy w użyciu do arytmetyki dat.

Na przykład różnica między dwiema datami, w liczbie dni:

(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} 
1

Projekt, nad którym obecnie pracuję, korzysta z pliku moment.js. Działa całkiem dobrze z clojurescript. Polecam to sprawdzić.

12

zbyt późno, ale dla tych, którzy przyjdą po poszukiwaniach, jest cljs-time biblioteka.

+1

Nigdy za późno :) –