只使用javascript比较时间

时间:2017-02-04 12:00:45

标签: javascript validation time

我有一个带输入的表单,当用户输入过去或现在的时间或者不到一小时应该给HH:MM: AM/PM的时间时,它只接受来自用户的格式为alert(wrong time)的时间。<登记/> 例如,如果当前时间是下午2点,如果用户输入上午10点或下午2点,如果用户输入3.01pm则它应该接受警报。

仅限javascript中所需的代码

1 个答案:

答案 0 :(得分:0)

这样的事情可能会起作用(未经过彻底测试):

var dateReg = /(\d{1,2}):(\d{2})\s*(AM|PM)/
var result = dateReg.exec("3:12PM")
var inputHour = result[1] // Get Hour
var inputAmPm = result[3] // Get AM/PM
var currentHour = new Date().getHours() // Get current hour
var ampm = currentHour >= 12 ? 'PM' : 'AM' // Check if we are in AM or PM
var hour = currentHour % 12 // Transform current hour into AM/PM format

if (Math.abs(inputHour - hour) >= 1 || Math.abs(inputHour - hour) < 1 && inputAmPm !== ampm) {
  alert('false')
}
// Do stuff...