Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中比较日期对象的时间组件的最佳方法是什么_Javascript_Date_Time - Fatal编程技术网

在javascript中比较日期对象的时间组件的最佳方法是什么

在javascript中比较日期对象的时间组件的最佳方法是什么,javascript,date,time,Javascript,Date,Time,我知道这可以通过以下方式实现: 比较小时和分钟等 正在比较date.getTime()%86400000 比较date.toLocaleTimeString() 是否有一种直接的方法?如果您只想比较时间成分,可以执行以下操作: function isTimeEqual(d0, d1) { return d0.getHours() == d1.getHours() && d0.getMinutes() == d1.getMintues() &&

我知道这可以通过以下方式实现:

  • 比较小时和分钟等
  • 正在比较date.getTime()%86400000
  • 比较date.toLocaleTimeString()

  • 是否有一种直接的方法?

    如果您只想比较时间成分,可以执行以下操作:

    function isTimeEqual(d0, d1) {
      return d0.getHours() == d1.getHours() &&
             d0.getMinutes() == d1.getMintues() &&
             d0.getSeconds() == d1.getSeconds() &&
             d0.getMilliseconds() == d1.getMilliseconds();
    }
    
    您可能不关心毫秒数

    如果您知道该位置从未遵守夏时制,或者时间为UTC,则可以执行以下操作:

    var msPerDay = 24*60*60*1000;
    return d0 % msPerDay == d1 % msPerDay;
    


    我认为最好的方法是第二种。但可以这样做

    var d1 = new Date("10/10/2008 12:00");
    var d2 = new Date("10/12/2008 12:30");
    var diff = (d2-d1) % 86400000;
    
    如果您希望它对d1>d2起作用

    var d1 = new Date("10/11/2010 12:00");
    var d2 = new Date("10/10/2010 12:30");
    
    d1.setFullYear(d2.getFullYear());
    d1.setMonth(d2.getMonth());
    d1.setDate(d2.getDate());
    var diff = d2-d1; 
    

    将周一下午1点与周二下午1点进行比较,是否应该得出一个结果,表明时间相等或相隔24小时?相等,我的意思是日期部分并不重要,只是时间重要,那么分数秒呢?23:11:42.223和23:11:42.489一样吗?我在寻找一个精确的比较。但问题是两者都有。只是我发现自己在比较时间,而我写的代码看起来从来都不对。
    var d1 = new Date("10/11/2010 12:00");
    var d2 = new Date("10/10/2010 12:30");
    
    d1.setFullYear(d2.getFullYear());
    d1.setMonth(d2.getMonth());
    d1.setDate(d2.getDate());
    var diff = d2-d1;