24

我从输入字段中获得了一个字符串,我将其用于日期,格式类似于 25-02-2013。现在我想将字符串与今天的日期进行比较。我想知道字符串是否比今天的日期更旧或更新。

有什么建议么?

4

6 回答 6

20
    <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>
于 2013-02-25T09:38:03.087 回答
16

确切日期比较并从已接受的答案中解决了错误

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")
}
于 2014-08-28T12:18:21.613 回答
13

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

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,那么它将与用户的本地午夜进行比较。

于 2016-05-07T03:11:39.080 回答
5

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

var x ='23-5-2010';
var a = x.split('-');
 var date = new Date (a[2], a[1] - 1,a[0]);//using a[1]-1 since Date object has month from 0-11
 var Today = new Date();
 if (date > Today)
    alert("great");
 else
    alert("less");
于 2013-02-25T09:31:40.360 回答
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() 对象的属性进行比较。

于 2013-02-25T09:30:22.623 回答
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());

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

于 2016-08-14T11:18:36.697 回答