javascript在数组中添加日期和时间对象

javascript在数组中添加日期和时间对象,javascript,arrays,loops,Javascript,Arrays,Loops,因此,我有一个时间和日期数组,我想将appointmateDate和appointmentTime合并为iso格式,并获得一个新的时间范围数组,这是可能的使用setHours。 使用array#map循环数组,使用appointmentDate创建新的Date对象,然后使用setHours和appointmentTime设置时间 注意:20:51 am不是有效时间,如果是24小时格式,则不需要am,pm const 时间=[{任命日期:“2021-12-24T23:00:00.000Z”,任命

因此,我有一个时间和日期数组,我想将appointmateDate和appointmentTime合并为iso格式,并获得一个新的时间范围数组,这是可能的使用
setHours
。 使用
array#map
循环数组,使用
appointmentDate
创建新的
Date
对象,然后使用
setHours
appointmentTime
设置时间

注意:
20:51 am
不是有效时间,如果是24小时格式,则不需要
am
pm

const
时间=[{任命日期:“2021-12-24T23:00:00.000Z”,任命时间:“17:51 am”},{任命日期:“2021-12-24T23:00:00.000Z”,任命时间:“18:51 am”},{任命日期:“2021-12-24T23:00:00.000Z”,任命时间:“19:51 am”},{任命日期:“2021-12-24T23:00:00.000Z”,任命时间:“20:51 am”},
res=time.map({appointmentDate,appointmentTime})=>{
施工日期=新日期(任命日期);
常数小时=任命时间切片(0,2);
const min=任命时间切片(3,5);
日期设置小时数(小时,分钟)
返回日期。toISOString();
});
控制台日志(res)使用
设置小时数
。 使用
array#map
循环数组,使用
appointmentDate
创建新的
Date
对象,然后使用
setHours
appointmentTime
设置时间

注意:
20:51 am
不是有效时间,如果是24小时格式,则不需要
am
pm

const
时间=[{任命日期:“2021-12-24T23:00:00.000Z”,任命时间:“17:51 am”},{任命日期:“2021-12-24T23:00:00.000Z”,任命时间:“18:51 am”},{任命日期:“2021-12-24T23:00:00.000Z”,任命时间:“19:51 am”},{任命日期:“2021-12-24T23:00:00.000Z”,任命时间:“20:51 am”},
res=time.map({appointmentDate,appointmentTime})=>{
施工日期=新日期(任命日期);
常数小时=任命时间切片(0,2);
const min=任命时间切片(3,5);
日期设置小时数(小时,分钟)
返回日期。toISOString();
});

控制台日志(res)不太清楚的是这段时间的工作原理。如中所示,
17:51 am
不是有效的小时:分钟时间段,因为am表示12小时时钟,但17表示24小时时钟。但是我注意到所有的日期字符串都包含23小时的等待时间,因此如果该时间部分只是
minute:second
值。如果是这种情况,下面的一位应该可以工作

但是,这仍然不包括时区(由ISO格式的Z表示)。此外,还不太清楚“范围”是什么意思,因为它们只是单独的日期字符串,而不是彼此之间的关系

我建议澄清你的问题。无论如何,希望这有帮助:

const time = [
  {
    appointmentDate: '2021-12-24T23:00:00.000Z',
    appointmentTime: '17:51 am',
  },
  {
    appointmentDate: '2021-12-24T23:00:00.000Z',
    appointmentTime: '18:51 am',
  },
  {
    appointmentDate: '2021-12-24T23:00:00.000Z',
    appointmentTime: '19:51 am',
  },
  {
    appointmentDate: '2021-12-24T23:00:00.000Z',
    appointmentTime: '20:51 am',
  },
]

time.map(obj => {
  let newTimeString = obj.appointmentTime.substr(0, 5)
  return obj.appointmentDate.replace('00:00.000Z', newTimeString + '.000Z')
})

不太清楚的是,这段时间的预期效果如何。如中所示,
17:51 am
不是有效的小时:分钟时间段,因为am表示12小时时钟,但17表示24小时时钟。但是我注意到所有的日期字符串都包含23小时的等待时间,因此如果该时间部分只是
minute:second
值。如果是这种情况,下面的一位应该可以工作

但是,这仍然不包括时区(由ISO格式的Z表示)。此外,还不太清楚“范围”是什么意思,因为它们只是单独的日期字符串,而不是彼此之间的关系

我建议澄清你的问题。无论如何,希望这有帮助:

const time = [
  {
    appointmentDate: '2021-12-24T23:00:00.000Z',
    appointmentTime: '17:51 am',
  },
  {
    appointmentDate: '2021-12-24T23:00:00.000Z',
    appointmentTime: '18:51 am',
  },
  {
    appointmentDate: '2021-12-24T23:00:00.000Z',
    appointmentTime: '19:51 am',
  },
  {
    appointmentDate: '2021-12-24T23:00:00.000Z',
    appointmentTime: '20:51 am',
  },
]

time.map(obj => {
  let newTimeString = obj.appointmentTime.substr(0, 5)
  return obj.appointmentDate.replace('00:00.000Z', newTimeString + '.000Z')
})