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

标签 javascript

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

=6:12>7:12 => False

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

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

像Excel一样。

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

最佳答案

Javascript 没有原生方法来处理时间,因此您需要创建自己的函数来将时间戳转换为可以比较的单位,在本例中我使用秒,但您可以使用毫秒。

您还显示了一个日期戳,您可以使用 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()
)

关于javascript - 如何使用js比较所有格式的两个时间值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43496702/

相关文章:

javascript - Firefox 中的 css 过滤器破坏定位

javascript - Accordion 式导航标题的切换图标

javascript - Node.js,等待所有 Redis 查询完成后再继续执行

javascript - 如何捕获浏览器选项卡的关闭

javascript - Braintree 上未知的 paymentMethodNonce

javascript - Sequelize include 不适用于 hasOne 关系

javascript - 使用 Passport 注册后登录用户

javascript - React-Native:使用推送通知唤醒后台任务

javascript - jQuery setTimeout 重置?

javascript - 使用 JS 添加新元素时删除 <style> 元素