Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将字符串与今天的字符串进行比较';JavaScript中的日期_Javascript_Date_Date Comparison - Fatal编程技术网

将字符串与今天的字符串进行比较';JavaScript中的日期

将字符串与今天的字符串进行比较';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。现在我想将字符串与今天的日期进行比较。我想知道字符串是比今天的日期旧还是新


有什么建议吗?

如果您的日期输入格式为“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());