仅在给定的特定时间获取日期 - 今天

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 class.

提供的Date instance and set the hours and minutes using Date.prototype.setHours() and 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);