检查字符串格式的日期时间是否等于中午

Check if string-formatted date time is equal to noon

我有一组对象,其中每个对象都有一个日期时间作为一个值:

[
  {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"}
]

我只想 return 所有时间为 12:00:00 的日期。

您可以使用 JavaScript 的 array filter function to iterate over all date objects. For each object, first convert the date string to an internal date representation 然后检查小时、分钟和秒是否适合中午。

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);

你可以试试这个function.I我只是比较小时,如果你想比较分钟和秒然后再添加一个级别的 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('without filter ===',arr)

let filteredArr = [];

for(let i = 0; i < arr.length; i++){
  let dt = new Date(arr[i].dt);
  console.log(dt);
  let hour = dt.getHours()
  let min = dt.getMinutes();
  let sec = dt.getSeconds();
  if(hour <= 12){
    filteredArr.push(arr[i]);
  }
}

console.log('filtered arr ==',filteredArr)