在javascript中将字符串与今天的日期进行比较

Leo*_*een 14 javascript date date-comparison

我有一个来自输入字段的字符串,我用这个格式就像这个25-02-2013.现在我想将字符串与今天的日期进行比较.我想知道字符串是否比今天更早或更新.

有什么建议?

pol*_*lin 13

    <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>
Run Code Online (Sandbox Code Playgroud)

  • 难道不应该是“var d = q.getDate();”来获取一个月中的某一天,我认为你所拥有的就是一周中的某一天。 (2认同)

Are*_*mar 13

准确的日期比较和解决的错误来自已接受的答案

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")
}
Run Code Online (Sandbox Code Playgroud)

  • 不应该是 var d = q.getDate(); 为了得到一个月中的某一天,我认为你所拥有的就得到了一周中的某一天。 (2认同)

Mar*_*zzo 10

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

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
}
Run Code Online (Sandbox Code Playgroud)

我添加0:00:00到第二个变量的原因是因为没有它,它将与UTC(格林威治)时间进行比较,这可能会给你带来不希望的结果.如果您将时间设置为0,那么它将与用户的当地午夜进行比较.


999*_*99k 5

使用Javascript Date对象对您来说会更容易。但由于Date对象不支持您的格式,我认为你必须分析你输入的字符串(例如:25-02-2013)以“ - ”来获得date monthyear再利用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");
Run Code Online (Sandbox Code Playgroud)