【发布时间】:2013-02-10 09:38:45
【问题描述】:
我从输入字段中获得了一个字符串,我将其用于日期,格式类似于 25-02-2013。现在我想将字符串与今天的日期进行比较。我想知道字符串是比今天的日期旧还是新。
有什么建议吗?
【问题讨论】:
标签: javascript date date-comparison
我从输入字段中获得了一个字符串,我将其用于日期,格式类似于 25-02-2013。现在我想将字符串与今天的日期进行比较。我想知道字符串是比今天的日期旧还是新。
有什么建议吗?
【问题讨论】:
标签: javascript date date-comparison
<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 d = q.getDate(); 来获取月份中的某天吗,我认为你所拥有的就是星期几。
确切的日期比较并从接受的答案中解决了错误
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,那么它将与用户的本地午夜进行比较。
【讨论】:
使用 Javascript Date 对象对您来说会更容易。但由于Date 对象不支持您的格式,我认为您必须使用“-”解析您的输入字符串(例如:25-02-2013)以获取datemonth 和year,然后使用@ 987654326@ 用于比较的对象。
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");
【讨论】:
var date = new Date (a[0], a[1] - 1,a[2]);
如果您的日期输入格式为“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());
嗯,这可以进一步优化,但这应该让您清楚地了解以统一格式制作日期所需的内容。
【讨论】: