在我的变量中获取月份和日期 - javascript

时间:2014-09-09 11:29:28

标签: javascript date if-statement

您好我正在尝试执行IF语句,该语句允许将当前日期与输入日期进行比较..如果输入日期低于当前日期,则为假。

我有通过我的变量的日期,但它只存储数字,例如它比较第9天到另一天,这不是很可靠。我希望变量也可以在月份和年份中使用,这意味着它可以比较整个日期。

如果有更好的方式让我知道。

这是我的代码

if (this.element.find('#visitdate').length > 0) {
  var dateParts = $('#visitdate').val().split('/');
  var check = new Date(dateParts[2], dateParts[1], dateParts[0], 0,0,0,0).getDate();
  var today = new Date().getDate;
  if (check < today) {
    _errMsg = "Please enter a furture visit date";
    return false;
  } else {
    return true;
  }
}

6 个答案:

答案 0 :(得分:0)

今天的日期行包含错误:

var today = new Date().getDate;

应该是

var today = new Date().getDate();

答案 1 :(得分:0)

格式为mm/dd/yyyy     var from = '08 / 19/2013 00:00'     var to = '08 / 12/2013 00:00'     var today = new Date()。getDate();

function isFromBiggerThanTo(dtmfrom, dtmto){
var from = new Date(dtmfrom).getTime();
var to = new Date(dtmto).getTime() ;
return from >= to ;
}

或使用以下

var x = new Date('2013-05-23');
var y = new Date('2013-05-23');

并比较

答案 2 :(得分:0)

你可以试试这个 - 它在我的项目中运作良好 -

  • 第1步
  

首先创建如下的javascript函数。

  • Date.prototype.DaysBetween = function () { var intMilDay = 24 * 60 * 60 * 1000; var intMilDif = arguments[0] - this; var intDays = Math.floor(intMilDif / intMilDay); if (intDays.toLocaleString() == "NaN") { return 0; } else { return intDays + 1; } }

第2步   - var check = new Date(dateParts[2], dateParts[1], dateParts[0], 0,0,0,0).getDate(); var today = new Date().getDate; var dateDiff = check .DaysBetween(today); // it will return integer value (difference between two dates ) if(dateDiff > 0 ){ alert('Your message.......');}

答案 3 :(得分:0)

你可以更容易。

您无需使用getDate()属性进行检查,只需比较2个日期即可。

并且也不需要使用小时,分钟和秒来初始化日期,您只需要年,月和日期。

这里有简化的示例

  var dateParts = $('#visitdate').val().split('/');
  var check = new Date(dateParts[2], dateParts[1], dateParts[0]);
  var today = new Date();
  if (check < today) {        
    return false;
  } else {
    return true;
  }

http://jsfiddle.net/wns3LkLv/

答案 4 :(得分:0)

试试这个:

 var user="09/09/2014/5/30";
 var arrdt= user.split("/");
 var userdt = new Date(arrdt[2], arrdt[1] - 1, arrdt[0],arrdt[3],arrdt[4]);
 var currdt = new Date();
 if (userdt < currdt) {
     alert("userdate is before current date"); //do something
 }else{
      alert("userdate is after current date");  //do something
 }

答案 5 :(得分:0)

感谢你们所有的答案,我已经解决了这个问题。

我使用了getTime函数而不是getDate。 然后检查变量必须有一个-1分配给月份,因为它从1个月到高。

var check = new Date(dateParts[2], dateParts[1]-1, dateParts[0], 0,0,0,0).getTime();

干杯