2017-01-26 121 views
0

我希望將消息發送到聊天用戶,然後我在解析格式存儲我的日期消息,我的數據庫名。 所以,當我得聊天記錄我有時間顯示是這樣的:如何獲得今天,昨天,或一天在javascript

  1. 如果日期是當天放映時間(下午3點等)
  2. 如果日期爲一天曆屆展會昨天
  3. 如果一天同一週演出日期名(例如:週日等)
  4. 所有其他人表現出確切的日期內

我已經試過這樣:

var now = moment(new Date()); //todays date 
var end = moment("2015-12-1"); // another date 
var differn = now.diff(end, 'days'); 

我怎樣才能做到這一點在JavaScript?我曾嘗試使用momentjs。

+2

看一看的MDN文檔:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date享受! :) – RhinoDevel

回答

1

一種方法做的是以下幾點:

function getMyText(date){ 
 
    if(!moment.isMoment(date)){ 
 
    date = moment(date); // ok for js date, milliseconds or string in ISO format 
 
    } 
 
    
 
    if(date.isSame(moment(), 'day')){ 
 
    return date.format('hh:mm a'); 
 
    } else if(date.isSame(moment().subtract(1, 'd'), 'day')){ 
 
    return 'Yesterday'; 
 
    } else if(date.isSame(moment(), 'week')){ 
 
    return date.format('dddd'); 
 
    } else { 
 
    return date.format('DD/MM/YYYY'); 
 
    } 
 
} 
 

 
var input = [ 
 
    moment(), // now 
 
    moment().subtract(22, 'h'), // 22 hours ago 
 
    moment().subtract(3, 'd'), // 3 days ago 
 
    moment().subtract(6, 'd'), // 6 days ago 
 
    moment().subtract(15, 'd') // 15 days ago 
 
]; 
 

 
for(var i=0; i<input.length; i++){ 
 
    console.log(getMyText(input[i])); 
 
}
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>

它採用瞬間isSameformat既然你已經使用moment.js subtract

+0

不錯,打我吧:)只是幾秒鐘 – alebianco

+0

@alebianco,你的回答也很不錯:) – VincenzoC

2

,您可以利用日曆時間功能

var formats = { 
 
    sameDay: '[Today]', 
 
    nextDay: '[Tomorrow]', 
 
    nextWeek: 'dddd', 
 
    lastDay: '[Yesterday]', 
 
    lastWeek: '[Last] dddd', 
 
    sameElse: 'DD/MM/YYYY' 
 
} 
 
var date = new Date() 
 
var output = moment().calendar(date, formats); 
 
console.log(output)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>

看一看的documentation更多的例子

+0

謝謝老兄,這是工作的罰款 –

+0

@NazarHussain請註明作出了回答,接受它是否解決了您的問題,你會得到還有+2的聲望。 – VincenzoC

+0

我該如何接受答案? –

相關問題