在 Clojurescript 中为日期添加秒数
Add seconds to a date in Clojurescript
我想在 Clojurescript 中为日期添加秒数。在 Javascript:
var t = new Date();
t.setSeconds(t.getSeconds() + 10);
如果可能不需要库(例如 cljs-time),原因很简单,这是我认为我将需要的唯一参与日期。
我想知道 Javascript 日期是否可以从毫秒构造??
(defn add-seconds [js-time seconds]
(let [given-millis (.getMilliseconds js-time)
augmented-millis (+ (* seconds 1000) given-millis)
res (js/Date. augmented-millis)]
res))
(def now (js/Date.))
(def plus-20 (add-seconds now 20))
(log "Now is " now)
(log "20 secs time is " plus-20)
如果您将 .getMilliseconds 替换为 .getTime
,则此解决方案有效
可以通过两种不同的方式使用以下函数:
(defn add-seconds
([s] (add-seconds (js/Date.) s))
([d s] (js/Date. (+ (.getTime d) (* 1000 s)))))
用 1 个参数调用它会 return 一个新日期,以从“现在”开始的秒数计算:
(add-seconds 20)
;; #inst "2015-11-12T00:03:51.712-00:00"
;; This is a Date object set 20 seconds from the time add-seconds was called
使用 2 个参数调用它允许指定开始日期和与该日期的偏移量(以秒为单位):
(def the-epoch (js/Date. 0))
;; This gives us a Date to use
(add-seconds the-epoch 120)
;; #inst "1970-01-01T00:02:00.000-00:00"
我想在 Clojurescript 中为日期添加秒数。在 Javascript:
var t = new Date();
t.setSeconds(t.getSeconds() + 10);
如果可能不需要库(例如 cljs-time),原因很简单,这是我认为我将需要的唯一参与日期。
我想知道 Javascript 日期是否可以从毫秒构造??
(defn add-seconds [js-time seconds]
(let [given-millis (.getMilliseconds js-time)
augmented-millis (+ (* seconds 1000) given-millis)
res (js/Date. augmented-millis)]
res))
(def now (js/Date.))
(def plus-20 (add-seconds now 20))
(log "Now is " now)
(log "20 secs time is " plus-20)
如果您将 .getMilliseconds 替换为 .getTime
,则此解决方案有效可以通过两种不同的方式使用以下函数:
(defn add-seconds
([s] (add-seconds (js/Date.) s))
([d s] (js/Date. (+ (.getTime d) (* 1000 s)))))
用 1 个参数调用它会 return 一个新日期,以从“现在”开始的秒数计算:
(add-seconds 20)
;; #inst "2015-11-12T00:03:51.712-00:00"
;; This is a Date object set 20 seconds from the time add-seconds was called
使用 2 个参数调用它允许指定开始日期和与该日期的偏移量(以秒为单位):
(def the-epoch (js/Date. 0))
;; This gives us a Date to use
(add-seconds the-epoch 120)
;; #inst "1970-01-01T00:02:00.000-00:00"