簡體   English   中英

僅獲取給定特定時間的日期 - 今天

[英]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.

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