[英]Moment JS Setting date format
我有一個datetime
字符串,我從中創建了一個start_time
和end_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.