[英]Get Date with only given specific time - for today
我需要獲取當天特定時間的日期時間。 我的輸入是像13:45
這樣的時間字符串
我試圖通過這種方式得到它:
const time: String = '13:45'
const result: Date = moment(moment().format('L') + ' ' + time + ':00').toDate()
console.log(result) // Invalid Date
也許不需要momentJS就可以完成這項工作?
var date = new Date(); date.setHours(13); date.setMinutes(45); alert(date);
只需使用moment()
解析
const time = '13:45' const result = moment(time, 'HH:mm').format() console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.27.0/moment.min.js" integrity="sha256-ZsWP0vT+akWmvEMkNYgZrPHKU9Ke8nYBPC3dqONp1mY=" crossorigin="anonymous"></script>
拆分輸入字符串,提取小時和分鍾。 之后,創建一個Date
實例並使用Date
類提供的Date.prototype.setHours()
和Date.prototype.setMinutes()
方法設置小時和分鍾。
const input = '13:45'; const [hour, minutes] = input.split(':'); const today = new Date(); today.setHours(hour); today.setMinutes(minutes); console.log(today);
Date.prototype.setHours()
方法還接受可選的分鍾、秒和毫秒作為參數。 所以你可以只使用setHours()
方法
const input = '13:45'; const today = new Date(); today.setHours(...input.split(':')); console.log(today);
由於您使用的是 Typescript,為了避免在使用第二個代碼片段中顯示的擴展語法時出現錯誤,您可以更改代碼,如下所示:
const input = '13:45';
const today = new Date();
today.setHours(...input.split(':').map(Number) as [number, number]);
console.log(today);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.