比较日期和年份

时间:2012-01-03 14:55:59

标签: javascript date comparison

我的时区下午好。

我想比较两个日期,其中一个是由用户插入的,另一个是当天。代码片段:

    var dateString = "2012-01-03"
    var date = new Date(dateString);
    date < new Date() ? true : false;

这返回true,我认为在引擎盖下,Date对象都被转换为毫秒然后进行比较,如果是这样,“今天”对象因为小时和分钟而变大。所以我想要做的是比较日期只是按月和年份。最好的方法是什么?创建一个新的Date对象,然后在比较之前将小时分钟和毫秒重置为零?或者从两个日期对象中提取月份和年份的日期并进行比较?有没有更好的方法?

提前致谢 最诚挚的问候。 新年快乐

3 个答案:

答案 0 :(得分:19)

设置您创建的date to zeros的时间部分。

var d = new Date();
d.setHours(0,0,0,0);

答案 1 :(得分:0)

因为它是yyyy-mm-dd格式,你可以从日期对象构建当前的yyyy-mm-dd并进行常规的字符串比较:

var currentDate = new Date();
var year = currentDate.getFullYear();
var month = currentDate.getMonth()+1;
if (month < 10) month = "0" + month;
var day = currentDate.getDate();
if (day < 10) day = "0" + day;
currentDate = year + "-" + month + "-" + day;

var dateString = "2012-01-03"
var compareDates =  dateString < currentDate ? true : false;
document.write(compareDates);

答案 2 :(得分:0)

基于已接受答案

的生产就绪示例
  1. 在Javascript中添加以下功能

    Date.prototype.removeTimeFromDate = function(){ var newDate = new Date(this); newDate.setHours(0,0,0,0); 返回newDate; }

  2. 在您希望进行比较时调用

    firstDate.removeTimeFromDate()