2012-05-28 225 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相互比較,但本質上是一樣的第一種方法。