将字符串与今天的字符串进行比较';JavaScript中的日期
我从一个输入字段中得到了一个字符串,用于日期,格式如下25-02-2013。现在我想将字符串与今天的日期进行比较。我想知道字符串是比今天的日期旧还是新将字符串与今天的字符串进行比较';JavaScript中的日期,javascript,date,date-comparison,Javascript,Date,Date Comparison,我从一个输入字段中得到了一个字符串,用于日期,格式如下25-02-2013。现在我想将字符串与今天的日期进行比较。我想知道字符串是比今天的日期旧还是新 有什么建议吗?如果您的日期输入格式为“25-02-2013”,您可以使用split()方法将字符串拆分为DD、MM和YYYY: 函数的作用是:将字符串转换成整数。然后可以将这3个变量与Date()对象的属性进行比较。使用JavascriptDate对象将更容易。但是由于Date对象不支持您的格式,我认为您必须用“-”解析输入字符串(例如:25-0
有什么建议吗?如果您的日期输入格式为“25-02-2013”,您可以使用split()方法将字符串拆分为DD、MM和YYYY:
函数的作用是:将字符串转换成整数。然后可以将这3个变量与Date()对象的属性进行比较。使用Javascript
Date
对象将更容易。但是由于Date
对象不支持您的格式,我认为您必须用“-”解析输入字符串(例如:25-02-2013),以获得Date
月和年,然后使用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");
var q=新日期();
var m=q.getMonth()+1;
var d=q.getDay();
变量y=q.getFullYear();
var日期=新日期(y、m、d);
mydate=新日期('2011-04-11');
控制台日志(日期);
console.log(mydate)
如果(日期>我的日期)
{
警惕(“更大”);
}
其他的
{
警报(“较小”)
}
准确的日期比较,并解决了接受答案中的错误
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,则它将与用户的本地午夜进行比较。进行日期比较时需要记住的最重要的点
- 两个日期的格式应相同,以获得准确的结果
- 如果您使用的是日期时间格式,并且只想进行日期比较,那么请确保将其转换为相关格式
这是我使用的代码
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());
嗯,这可以进一步优化,但这应该让您清楚地知道以统一格式制作日期需要什么。我认为您应该使用第3行,应该是var date=new date(a[0],a[1]-1,a[2])代码>@k29 No.Date对象接受年、月、日顺序的参数。使用OP的输入字符串[2]表示年份,因此我的语句是正确的。请检查一下对不起,你是对的。我想我在尝试代码时从其他答案中复制了一个字符串。我想你需要确保两个日期都是iso格式的YYYY-MM-DD,以避免出现错误,可以使用toISOString()为什么要创建3个日期?它没有意义,不是吗代码>要得到一个月的哪一天,我想你得到的是一周的哪一天;我想,要得到一个月中的某一天,你所拥有的就是一周中的某一天。
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
}
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());