如何使用js比较所有格式的两个时间值?

时间:2017-04-19 13:08:51

标签: javascript

我需要比较字符串类型中的两个时间值。它可能采用以下格式,

  

= 6:12> 7:12 =>假

     

= 6:12 PM> 7:12 AM =>真

     

= 4/19/2017 6:12 PM> 4/19/2017 7:12 AM =>真

喜欢excel。

您能否建议我,如何使用JS实现我的场景

2 个答案:

答案 0 :(得分:1)

Javascript没有本地方式来处理时间,所以你需要自己创建一个函数来将时间戳转换成一个可以比较的单位,在这个例子中我使用秒,但你可以使用毫秒。 / p>

您还显示了一个日期戳,您可以使用Date对象将时间戳转换为可以比较的毫秒数。



const timeToSeconds = s => {
  const m = s.match(/(\d{1,2})\:(\d{2})\s*(AM|PM)*/)
  return (
    (parseInt(m[1]) * 60) + 
    (parseInt(m[2])) + 
    (m[3] === 'PM' ? 12 * 60 : 0)
  )
}

console.log(
  timeToSeconds('6:12') > timeToSeconds('7:12')
)

console.log(
  timeToSeconds('6:12 PM') > timeToSeconds('7:12 AM')
)

console.log(
  new Date('4/19/2017 6:12 PM').getTime() > new Date('4/19/2017 7:12 PM').getTime()
)




答案 1 :(得分:0)

将日期转换为时间戳,然后您可以使用>运算符对它们进行比较。