使用jQuery比较两个时间变量

5
这是我的jQuery代码。在此代码中,#StartTime#EndTime是表单输入标签的id。
时间格式为00:00 AM/PM。
变量starttimeval和endtimeval包含获取开始和结束时间的值。
如何比较这两个时间,例如:if(starttimeval < endtimeval){alert(message);}
  $(function() {
    $('#StartTime').datetimepicker({
        datepicker : false,
        format : 'g:i A'
    });
    $('#EndTime').datetimepicker({
        datepicker : false,
        format : 'g:i A'

    });
     var starttimeval=  $("#StartTime").val();
     var endtimeval= $("#EndTime").val();

      });

这是我的表单图片。它展示了使用datetimepicker插件的时间选择功能。

我只需要时间比较功能。例如,获取starttimeval=8: 00 PM和endtimeval=9: 00 AM的值。


starttimevalendtimeval长什么样? - tadman
我的意思是,你得到的是实际值,而不是理论上的值。12小时制时间不能直接进行比较。有两个具体的示例会帮助正确地获得结果,因为这不需要安装日期选择器来测试它。 - tadman
当我点击提交按钮时,开始时间值和结束时间值将存储到变量starttimeval和endtimeval中。但我需要验证。因此,如果开始时间小于结束时间,则给出警告消息。所以我需要时间比较功能。 - nmkkannan
@nmkkannan:顺便提一下:如果你使用的是除了http://jqueryui.com/datepicker/之外的插件,请添加缺失的插件信息。这可能会导致混淆,因为并不是每个人都能推断出你正在使用哪个插件。不知道确切的插件也意味着不是每个人都能尝试使用代码找到解决方案。如果你正在使用http://jqueryui.com/datepicker/,请说明并链接到它。同时,添加一个jsFiddle演示你的问题也会非常有帮助。 - Nope
@nmkkannan,你最近的问题之所以被踩是因为缺乏尝试。 - Avinash Raj
显示剩余3条评论
3个回答

2

你可以尝试类似这样的做法:

var dateBegin = $('StartTime').datepicker('getDate').getTime():
var dateEnd = $('EndTime').datepicker('getDate').getTime();
if (dateBegin == dateEnd)
   // some stuff

在文档中看到。 (我假设您正在使用来自jquery ui的datetimepicker)


0

试试这个:

  var start=$("#StartTime").val();
  var starttimeval= start.split("/");
  var startdt= new Date(starttimeval[2], starttimeval[1] - 1, starttimeval[0],starttimeval[3],starttimeval[4]);

  var end=$("#StartTime").val();
  var endtimeval= end.split("/");
  var enddt= new Date(endtimeval[2], endtimeval[1] - 1, endtimeval[0],endtimeval[3],endtimeval[4]);

  if (startdt< enddt) {
    alert("startdt is before current date");
  }else{
    alert("startdtis after current date");
  }

0
从表单中获取值将返回字符串,最好将字符串转换/解析为 JavaScript Date对象并进行比较。
var starttime = new Date("April 14, 2014 11:00 PM");
var endtime = new Date("April 15, 2014 1:00 AM");

FIDDLE

每当你开始处理日期/时间比较,第一个想法就是开始解析字符串并添加if条件来测试各种条件,如跨越午夜...停止,停止。

处理日期和时间最好留给已经建立的代码,没有必要重新发明轮子。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接