Javascript 检查字符串格式的日期时间是否等于中午
我有一个对象数组,其中每个对象都有一个日期时间作为一个值:Javascript 检查字符串格式的日期时间是否等于中午,javascript,typescript,angular7,Javascript,Typescript,Angular7,我有一个对象数组,其中每个对象都有一个日期时间作为一个值: [ {dt: "2019-11-29 12:00:00"}, {dt: "2019-11-29 3:00:00"}, {dt: "2019-11-29 6:00:00"}, {dt: "2019-11-30 12:00:00"}, {dt: "2019-11-30 6:00:00"} ] 我只想返回所有带有时间的日期12:00:00您可以使用JavaScript对所有日期对象进行迭代。对于每个对象,首先将日期字符串
[
{dt: "2019-11-29 12:00:00"},
{dt: "2019-11-29 3:00:00"},
{dt: "2019-11-29 6:00:00"},
{dt: "2019-11-30 12:00:00"},
{dt: "2019-11-30 6:00:00"}
]
我只想返回所有带有时间的日期12:00:00
您可以使用JavaScript对所有日期对象进行迭代。对于每个对象,首先将日期字符串转换为,然后检查小时、分钟和秒是否适合中午
const array = [
{dt: "2019-11-29 12:00:00"},
{dt: "2019-11-29 3:00:00"},
{dt: "2019-11-29 6:00:00"},
{dt: "2019-11-30 12:00:00"},
{dt: "2019-11-30 6:00:00"}
];
const result = array.filter((stringDate) => {
const rawDate = new Date(stringDate.dt);
return rawDate.getHours() === 12 && rawDate.getMinutes() === 0 && rawDate.getSeconds() === 0;
});
console.info(result);
你可以试试这个功能。我只是比较小时,如果你想比较分和秒,然后再添加一个级别的if-else
const arr=[{dt:'2019-11-29 12:00:00'},{dt:'2019-11-29 3:0$.00:00'},{dt:'2019-11-30 12:00:00'},{dt:'2019-11-30 6:00:00'};
console.log('不带过滤器==',arr)
设filteredar=[];
for(设i=0;i 如果(小时)那么那些Date
s还是字符串?我猜是字符串?如果你把它插入newdate()
,你就可以调用getHours()
和getMinutes()
并分别与12
和0
进行比较。.filter()
是您的朋友。此外,您的输入不是您所期望的。因为它是数组中的单个对象,而不是多个对象,所以只会使用最后一个dt键。可能要将其更改为单独的对象。如果它是对象数组且日期是字符串,var value=[{dt:'2019-11-29 12:00:00'},{dt 2019-11-29 3:00:00'},{dt:'2019-11-29 6:00:00'},{dt:'2019-11-30 12:00:00'},{dt:'2019-11-30 6:00:00'}可以使用筛选方法。value.filter((val)=>val.dt.includes('12:00:00')
数组无论如何都是无效的JS,请解决您的问题。或者让noonDates=data.filter(obj=>/12:00:00/.dt。