我想向聊天用户发送消息,然后将我的消息与解析格式的日期存储到我的数据库中。 因此,当我必须得到聊天记录时,我必须像这样显示时间:
我试过这个:
var now = moment(new Date()); //todays date
var end = moment("2015-12-1"); // another date
var differn = now.diff(end, 'days');
我怎样才能在JavaScript中执行此操作?我试图使用momentjs。
答案 0 :(得分:2)
因为您已经在使用moment.js,所以您可以利用日历时间功能
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了解更多示例
答案 1 :(得分: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>