在javascript中将字符串与今天的日期进行比较

时间:2013-02-25 09:22:31

标签: javascript date date-comparison

我有一个来自输入字段的字符串,我使用的格式是这样的格式,如25-02-2013。现在我想将字符串与今天的日期进行比较。我想知道字符串是否比今天更早或更新。

有什么建议吗?

6 个答案:

答案 0 :(得分:13)

确切的日期比较和已接受答案的已解决错误

var q = new Date();
var m = q.getMonth();
var d = q.getDay();
var y = q.getFullYear();

var date = new Date(y,m,d);

mydate=new Date('2011-04-11');
console.log(date);
console.log(mydate)

if(date>mydate)
{
    alert("greater");
}
else
{
    alert("smaller")
}

答案 1 :(得分:9)

    <script type="text/javascript">

var q = new Date();
var m = q.getMonth()+1;
var d = q.getDay();
var y = q.getFullYear();

var date = new Date(y,m,d);

mydate=new Date('2011-04-11');
console.log(date);
console.log(mydate)

if(date>mydate)
{
    alert("greater");
}
else
{
    alert("smaller")
}


</script>

答案 2 :(得分:8)

您可以使用简单的比较运算符来查看日期是否大于另一个:

var today = new Date();
var jun3 = new Date("2016-06-03 0:00:00");

if(today > jun3){
    // True if today is on or after June 3rd 2016
}else{
    // Today is before June 3rd
}

我将0:00:00添加到第二个变量的原因是因为没有它,它会与UTC(格林威治)时间进行比较,这可能会给您带来不希望的结果。如果您将时间设置为0,那么它将与用户的当地午夜进行比较。

答案 3 :(得分:4)

使用Javascript Date对象对您来说会更容易。但由于Date对象不支持您的格式,我认为您必须使用' - '解析输入字符串(例如:25-02-2013)以获取date month和{ {1}}然后使用year对象进行比较。

Date

答案 4 :(得分:0)

如果您的日期输入格式为“25-02-2013”​​,则可以使用split()方法将字符串拆分为DD,MM和YYYY:

var date_string="25-02-2013";

var day  = parseInt(date_string.split("-")[0]);
var month= parseInt(date_string.split("-")[1]);
var year = parseInt(date_string.split("-")[2]);

parseInt()函数用于将字符串转换为整数。然后可以将3个变量与Date()对象的属性进行比较。

答案 5 :(得分:0)

进行日期比较时需要记住的最重要的一点

  
      
  • 这两个日期应采用相同的格式以获得准确的结果。
  •   
  • 如果您使用日期时间格式并且只想进行日期比较,请确保以相关格式进行转换。
  •   

这是我使用的代码。

           var dateNotifStr = oRecord.getData("dateNotif");
           var today = new Date();       
           var todayDateFormatted = new Date(today.getFullYear(),today.getMonth(),today.getDate());

           var dateNotif=new Date(dateNotifStr);
           var dateNotifFormatted = new Date(dateNotif.getFullYear(),dateNotif.getMonth(),dateNotif.getDate());

嗯,这可以进一步优化,但这可以让您清楚地了解以统一格式制作日期所需的内容。