2014-09-10 51 views
0

我想知道哪個js插件用於顯示郵件時間(如果是今天的郵件)或日期。gmail使用哪個插件顯示郵件時間或日期?

如果今天本身收到郵件,然後它顯示的時間「下午1點18分」,否則日期,如「09月05日」。如果我去年收到了郵件,那麼它會顯示「11/12/13」的日期。

是否有任何JS插件或軌這樣做呢? 像這樣enter image description here

感謝

回答

1

爲什麼你需要的任何插件或寶石。你可以很容易地用幫手來做。 在您的幫助:

require 'date' 

def time_date(date) 
    if date.year > Time.now.year 
    date.strftime('%d/%m/%y') 
    else 
    date.to_date == Time.now.to_date ? date.strftime('%l:%M %P') : date.strftime('%b %d') 
    end 
end 

在您的視圖:

<%= time_date(@model.created_at) %> 

按你的評論確實想使用jQuery來顯示日期時間,而不是幫手。所以沒有直接的插件。但是你可以使用https://github.com/agschwender/jquery.formatDateTime來實現你想要的。

讓我們考慮對你的看法,你有以下的div:

<div class="start">2014/09/11 09:00:03</div> 

現在使用jquery.formatDateTime格式化DIV日期:

$(document).ready(function(){ 
    var datetime = new Date($('.start').text()); 
    var today = new Date(); 
    if(today.getFullYear() > datetime.getFullYear()){ 
    $('.start').formatDateTime('mm/dd/y'); 
    } 
    else{ 
    if(today.getDate() > datetime.getDate()){ 
     $('.start').formatDateTime('M m'); 
    } 
    else{ 
     $('.start').formatDateTime('g:ii a'); 
    } 
    } 

}); 

希望這有助於你!

+0

我可以通過輔助方法實現它。但是如果我有1000條記錄,那麼我必須調用這個幫助器方法1000次,這會降低我的性能。這就是爲什麼尋找js插件。 – sunil 2014-09-11 06:27:21

+1

jquery中沒有直接插件可以這樣做。但你可以通過https://github.com/agschwender/jquery.formatDateTime來實現它。我已經更新了我的答案 – 2014-09-11 07:25:57

0

您可以使用moment.js因爲這是一種日期和時間顯示 進口moment.js,並與傳遞日期作爲參數調用以下功能。

function emailTimeDisplay(dbDate) { 
    dbDate = new moment(dbDate); 
    var currentDate = new moment(); 
    if (currentDate.isSame(dbDate, 'day')) 
     return dbDate.format('h:mm a'); 
    else if (currentDate.isSame(dbDate, 'year')) 
     return dbDate.format("MMM DD"); 
    else 
     return dbDate.format("MM/DD/YYYY"); 
} 
1

您可以使用moment.js進行此類日期和時間顯示。導入moment.js並調用此函數,將日期作爲參數傳遞。

function emailTimeDisplay(dbDate) { 
    dbDate = new moment(dbDate); 
    var currentDate = new moment(); 
    if (currentDate.isSame(dbDate, 'day')) 
     return dbDate.format('h:mm a'); 
    else if (currentDate.isSame(dbDate, 'year')) 
     return dbDate.format("MMM DD"); 
    else 
     return dbDate.format("MM/DD/YYYY"); 
} 
相關問題