簡體   English   中英

如何在momentjs中設置帶有日期的時間

[英]How to set time with date in momentjs

momentjs是否提供任何選項來設置特定時間的時間?

 var date = "2017-03-13"; var time = "18:00"; var timeAndDate = moment(date).startOf(time); console.log(timeAndDate);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>

在此處輸入圖片說明

Moment.js 不提供通過字符串設置現有時刻的時間的方法。 為什么不將兩者連接起來:

 var date = "2017-03-13"; var time = "18:00"; var timeAndDate = moment(date + ' ' + time); console.log(timeAndDate);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>

或者,您可以使用兩個 Moment 對象並使用 getter 和 setter。 雖然這是一個更加冗長的選項,但如果您不能使用連接,它可能會很有用:

 let dateStr = '2017-03-13', timeStr = '18:00', date = moment(dateStr), time = moment(timeStr, 'HH:mm'); date.set({ hour: time.get('hour'), minute: time.get('minute'), second: time.get('second') }); console.log(date);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>

由於這會在 google 結果中彈出,因此 moment 現在有一個set(unit, value)函數,您可以通過以下方式實現:

const hours = 15;
const minutes = 32;
var date = moment("1946-05-21").set("hour", hours).set("minute", minutes);

或作為組合功能

var date = moment("1946-05-21").set({"hour": 15, "minute": 32});

注意: set函數要求值為Integer類型

以防萬一有人想知道如何在Date Object上設置時間,我是這樣做的:

const dateObj = new Date();

const dateStr = dateObj.toISOString().split('T').shift();
const timeStr = '03:45';

const timeAndDate = moment(dateStr + ' ' + timeStr).toDate();
var timeAndDate = moment(date).add(moment.duration(time))

當您為日期和時間分隔字符串時,您可以首先將日期解析為日期,然后將其解析為持續時間,然后添加它們。 這應該創建一個moment與適當的日期和時間

對於不同時間的今天日期:

moment(12, "HH")

暫無
暫無

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

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