輸入 - 15:30
輸出 - 17:10
我嘗試這樣做:
time = '15:30'
moment(time)
.add(40, 'minutes')
.add(2, 'hours')
.format('HH:mm')
但它不起作用,時刻說“無效日期”
uj5u.com熱心網友回復:
首先,您需要決議字串資料,我們知道我們使用的是有效時間。
const time = '15:30' // Valid date
const time = '252:10' // Invalid date
您可以在 moment 函式中使用第二個引數,如下所示:
moment(time, "HH:mm");
您只需要知道將字串轉換為什么格式,在此檔案鏈接中閱讀更多相關資訊。
然后,您可以占用不同的構建器以獲得預期的結果。
moment(time, "HH:mm") // Parse the string
.add(40, 'minutes') // Add 40 minutes
.add(2, 'hours') // Add 2 hours
.format('HH:mm') // Format to specified format
最后你會得到你的日期時間決議。
這是一個作業版本:
const time = '15:30'
const date = moment(time, "HH:mm").toDate();
const parsedDate = moment(date)
.add(40, 'minutes')
.add(2, 'hours')
.format('HH:mm')
console.log(parsedDate);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/moment.min.js"></script>
uj5u.com熱心網友回復:
將 2 小時 30 分鐘添加到 15:30h 將獲得 18:10h - 同樣不使用moments.js:
const time=new Date(2022,1,1,15,30); // define initial datetime object
time.setHours(time.getHours() 2);
time.setMinutes(time.getMinutes() 40);
console.log(time.toTimeString().slice(0,5));
涉及Date.prototype定義的另一種解決問題的方法可能是:
Date.prototype.add=function(n,unit){ this["set" unit]( this["get" unit]() n); return this; }
console.log(new Date(2022,1,1,15,30)
.add(2,"Hours")
.add(40,"Minutes")
.toTimeString()
.slice(0,5) );
在來自各方的抗議之前:是的,我明白了:擴展內置類的原型并不被認為是好的編程風格。因此,上面的示例應該被視為原型函式機制在 JavaScript 中如何作業的演示,可能不應該合并到實際專案中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/522204.html
上一篇:mysql以這種格式回傳日期“yyyy-mm-ddT00:00:00.000Z”我想要它以“yyyy-dd-mm”格式
