javascript日期比较

时间:2011-08-04 21:00:19

标签: javascript date

我有lead_creat_date我需要将它与日期前20天进行比较(假设今天是2011年8月4日,比我需要7月14日至2011年)。因此,与lead_creat_date和2011年7月14日的比较。

if ( lead_creat_date > july-14-2011) 
{

 alert('lead_creat_date is greater');

}

如何在JavaScript中进行此比较?

我正在尝试使用JavaScript日期对象。我确实在使用setDate()&之前的20天前获得了一个号码。 getDate()函数,但我不知道如何将lead_creat_date转换为JavaScript date()对象。

感谢。

3 个答案:

答案 0 :(得分:0)

您可能可以使用Date.parse()方法。

这实际上取决于您的日期格式。

答案 1 :(得分:0)

我假设lead_creat_date是一个Date对象,因为它不清楚......

这取决于您需要的准确程度。你可以做这样的事情,这个事情可以追溯到20天,到毫秒。

var now = new Date().getTime() - 20 * 24 * 60 * 60 * 1000;

if (lead_creat_date > now) {
    alert('lead_creat_date is greater');
}

如果你只关心这一天,你可能会这样做

var now = new Date().getTime() - 20 * 24 * 60 * 60 * 1000;
now = new Date(now.toDateString());

if (lead_creat_date > now) {
    alert('lead_creat_date is greater');
}

参考文献:
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toDateString
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getTime

答案 2 :(得分:0)

要将字符串转换为日期,请将部件转换为数字以用作 Date 构造函数的输入。例如如果您的日期是 July-14-2011 ,那么您可以使用以下方式进行转换:

var dateString = 'July-14-2011';
var months = {january:0, february:1, march:2, april:3, 
              may:4, june:5, july:6, august:7, september:8,
              october:9, november:10, december:11};

var dateBits = dateString.split('-');
var monthNumber = months[dateBits[0].toLowerCase()];

// Date object for date string
var date = new Date(dateBits[2], monthNumber, dateBits[1]);

// 20 days prior
date.setDate(date.getDate() - 20); // 24 Jun 2011

修改

如果您的日期格式是8/27/2009 10:23:00 AM,您可以使用以下方式转换为日期:

var dateString = '8/3/2011 10:23:00 AM';
var dateBits = dateString.split(/[ \/]/);    
var date = new Date(dateBits[2], dateBits[0] - 1, dateBits[1]);
// 20 days prior
date.setDate(date.getDate() - 20); // 14 Jul 2011

alert(date);

如果您需要包含时间,可以使用相同的策略来包含时间,例如

var dateString = '8/3/2011 10:23:00 AM';
var dateBits = dateString.split(/[ \/:]/);

if (dateBits[6].toLowerCase() == 'pm') {
    dateBits[3] = +dateBits[3] + 12;
}

// Thu 14 Jul 2011 10:23:00
var date = new Date(dateBits[2], dateBits[0] - 1, dateBits[1] - 20,
                    dateBits[3], dateBits[4], dateBits[5]);

并作为一个功能:

function offsetDate(dateString, offset) {
  var dateBits = dateString.split(/[ \/:]/);

  if (dateBits[6].toLowerCase() == 'pm') {
      dateBits[3] = +dateBits[3] + 12;
  }

  return new Date(dateBits[2], dateBits[0] - 1, 
                  +dateBits[1] + +offset, 
                  dateBits[3], dateBits[4], dateBits[5]);
}

// Thu 14 Jul 2011 10:23:00
alert(offsetDate('8/3/2011 10:23:00 AM', -20));
// Tue 23 Aug 2011 22:23:00
alert(offsetDate('8/3/2011 10:23:00 PM', +20));
// Wed 18 Jan 2012 10:23:00
alert(offsetDate('12/29/2011 10:23:00 AM', +20));