2012-05-28 259 views
0

我想检查日期是否在今天之前。如果是,那么我想显示日期,但不是时间,如果是今天,那么我想显示时间而不是日期。我检查的日期是dd-mm-yyy hh:mm格式,所以它们不会进行比较。日期格式和比较日期

请看看下面我有迄今:

var created = '25-05-2012 02:15'; 
var now = new Date(); 

if (created < now) { 
    created_format = [ format the date to be 25-05-2012 ] 
} else { 
    created_format = [ format the date to be 02:15 ] 
} 

我一直在使用now.dateFormat()now.format()在其他例子中看到这些之后尝试,但我得到“不是一个函数”的错误消息。

+1

jQuery不提供日期功能,所以我已经重申了这个问题。 – JJJ

+0

[格式化javascript中的日期](http://stackoverflow.com/questions/1056728/formatting-a-date-in-javascript) – JJJ

回答

0

您可以使用getTime方法并获取时间戳。然后您可以将其与当前日期时间戳进行比较。

+1

-1可能的重复,因为'getTime'方法不返回时间戳,它会返回一个数字,它是自纪元以来的毫秒数。此外,请不要参考[w3schools](http://w3fools.com/),参考相应的标准和MDN或MSDN以获取适当的示例。 – RobG

+0

你说得对,我回答太快 – Slawek

1

开始通过让你的日期字符串的部分:

var created = '25-05-2012 02:15'; 
var bits = created.split(/[-\s:]/); 
var now = new Date(); 

// Test if it's today  
if (bits[0] == now.getDate() && 
    bits[1] == (now.getMonth() + 1) && 
    bits[2] == now.getFullYear()) { 

    // date is today, show time 

} else { 
    // date isn't today, show date 
} 

当然,还有其他的方式,但我认为上面的是最简单的。例如

var otherDate = new Date(bits[2], bits[1] - 1, bits[0]); 
now.setHours(0,0,0,0); 
if (otherDate < now) { 
    // otherDate is before today 
} else { 
    // otherDate is not before today 
} 

同样,一旦你转换的字符串的日期,你可以使用getFullYeargetMonthgetDate相互比较,但本质上是一样的第一种方法。