簡體   English   中英

Moment JS 設置日期格式

[英]Moment JS Setting date format

我有一個datetime字符串,我從中創建了一個start_timeend_time變量。

預期輸出: start_time應該正好是從現在開始的 2 天,時間取自datetime字符串,而end_time正好是從start_time 3 小時。

代碼

 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script> <script> const time = "2019-12-13T05:30:00+08:00" const date = moment(time); const h = date.hour(); const m = date.minutes(); const s = date.seconds(); const from = moment().add(2, 'days'); var start_time = from.clone().hour(h).minute(m).second(s); var end_time = start_time.clone().add(3, 'hours'); // start_time = start_time.toISOString(); // end_time = end_time.toISOString(); console.log(start_time); // Expected: "2019-12-15T05:30:00+08:00" console.log(end_time); // Expected: "2019-12-15T08:30:00+08:00" </script>

預期結果:

開始時間:“2019-12-15T05:30:00+08:00”

結束時間:“2019-12-15T08:30:00+08:00”

當前結果:

開始時間:“2019-12-14T21:30:00.604Z”

結束時間:“2019-12-15T00:30:00.604Z”

關於如何在這種情況下正確格式化日期以達到預期結果的任何想法?

這是因為您使用了不同的時區。 輸入為 +8 時區,輸出為 UTC

如果您添加了.format() ,您將看到您實際上擁有正確的值。

 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script> <script> const time = "2019-12-13T05:30:00+08:00" const date = moment(time); const h = date.hour(); const m = date.minutes(); const s = date.seconds(); const from = moment().add(2, 'days'); var start_time = from.clone().hour(h).minute(m).second(s); var end_time = start_time.clone().add(3, 'hours'); // start_time = start_time.toISOString(); // end_time = end_time.toISOString(); // added .format() console.log(start_time.format()); // Expected: "2019-12-15T05:30:00+08:00" console.log(end_time.format()); // Expected: "2019-12-15T08:30:00+08:00" </script>

試試這樣:

var start_time:moment().add(2,'days');
var end_time:moment().add(2,'days').add(3,'hours')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM