我从输入字段中获得了一个字符串,我将其用于日期,格式类似于 25-02-2013。现在我想将字符串与今天的日期进行比较。我想知道字符串是否比今天的日期更旧或更新。
有什么建议么?
我从输入字段中获得了一个字符串,我将其用于日期,格式类似于 25-02-2013。现在我想将字符串与今天的日期进行比较。我想知道字符串是否比今天的日期更旧或更新。
有什么建议么?
<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>
确切日期比较并从已接受的答案中解决了错误
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")
}
您可以使用简单的比较运算符来查看日期是否大于另一个日期:
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,那么它将与用户的本地午夜进行比较。
使用 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");
如果您的日期输入格式为“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() 对象的属性进行比较。
进行日期比较时需要记住的最重要的点
- 两个日期应采用相同的格式以获得准确的结果。
- 如果您使用日期时间格式并且只想进行日期比较,请确保将其转换为相关格式。
这是我使用的代码。
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());
好吧,这可以进一步优化,但这应该让您清楚地了解以统一格式制作日期所需的内容。