javascript - 比较开始时间和结束时间

标签 javascript php jquery validation

我知道这里有很多关于这个主题的问题,但没有人问我遇到的问题。

此脚本用于用户选择日期、开始和结束时间并进行预订的预订。 我有一个带有日期选择器输入字段和两个时间选择器输入字段的表单,一个用于开始时间,一个用于结束时间。

问题是我为其编写预订脚本的商店从晚上 17:00 营业到凌晨 01:00。因此,如果有人在 23:00 到 01:00 之间预订,则开始时间总是显示得更大,这会导致表单未通过验证。

有谁知道是否有解决方案,或者是否有可以执行此操作的验证器。

注意:我只想比较时间,不想添加其他日期字段。

enter image description here

var timeto=$('#timeto').val();
var timefrom=$('#timefrom').val();
        if(timefrom>timeto){
            alert('start time should be smaller')
        }

因此,如果 time from 是 23:00 并且 time to 是 00:00,则显示警报,但实际上 00:00 比 23 :00

最佳答案

创建日期对象时只需减去一小时。

var timefrom = new Date();
temp = $('#timefrom').val().split(":");
timefrom.setHours((parseInt(temp[0]) - 1 + 24) % 24);
timefrom.setMinutes(parseInt(temp[1]));

var timeto = new Date();
temp = $('#timeto').val().split(":");
timeto.setHours((parseInt(temp[0]) - 1 + 24) % 24);
timeto.setMinutes(parseInt(temp[1]));

if (timeto < timefrom){
    alert('start time should be smaller than end time!');
}

关于javascript - 比较开始时间和结束时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37456701/

相关文章:

jquery - 如何从中心填充矩形 html , css

php - 从 mysql 数据库检索图像的不同方式

jquery - 如何使用 jQuery 检查 parent sibling 的所有复选框

javascript - 使用 Javascript 在 @foreach 循环中定位特定项目

javascript - "animate-delay: 1s;"还在进行时隐藏div,延时后显示

javascript - 如何在初始化许多视频时获取 Plyr 当前实例

javascript - 如何在页面侧面的 float 框中显示我的用户脚本的输出?

php - Elastic Search字符串中的排序数字

javascript - PHP::使用ajax上传

jquery - 为什么这个简单的 jQuery 切换不起作用?