项目中需要时间格式的过滤器,像微信的时间显示一样,如下的样式
.filter('FormatStrDate', function() {
// 两个时间相差的天数
//sDate1和sDate2是2006-12-18格式
function DateDiff(sDate1, sDate2){
var aDate, oDate1, oDate2, iDays;
aDate = sDate1.split("-");
oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]); //转换为12-18-2006格式
aDate = sDate2.split("-");
oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]);
iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 /24); //把相差的毫秒数转换为天数
return iDays
}
// 获取固定时间格式2006-12-18格式
function currentTime_datestyle () {
var today = new Date();
var year = today.getFullYear();
var mouth = today.getMonth()+1;
var date = today.getDate();
var hours = today.getHours();
var minutes = today.getMinutes();
var seconds = today.getSeconds();
var milliseconds = today.getMilliseconds();
if(mouth < 10){
mouth = "0"+mouth.toString()
}else{
}
if(date < 10){
date = "0"+date.toString()
}else{
}
if(hours < 10){
hours = "0"+hours.toString()
}else{
}
if(minutes < 10){
minutes = "0"+minutes.toString()
}else{
}
if(seconds < 10){
seconds = "0"+seconds.toString()
}else{
}
if(10 > milliseconds){
milliseconds = "00"+milliseconds.toString()
}else if((10 <= milliseconds) && (100 > milliseconds)){
milliseconds = "0"+milliseconds.toString()
}else{
milliseconds = milliseconds.toString()
}
return year+"-"+mouth+"-"+date+" "+hours+":"+minutes+"";
}
return function(input) {
var currenttime = currentTime_datestyle ();
var date = new Date(input);
var show_day = new Array('星期一','星期二','星期三','星期四','星期五','星期六','星期日');
var today = show_day[date.getDay()-1];
var formatDate = "";
var sDate1 = input.substr(0,11);
var sDate2 = currenttime.substr(0,11);
if(currenttime.substr(0,11) == input.substr(0,11) ){ //判断是否为当天时间
var showtime = input.substr(11,5);
if(showtime <= 12 ){
formatDate = "上午" + " " + showtime
}else{
formatDate = "下午" + " " + showtime
}
}
//判断该时间段为一周内的时间
else if(DateDiff(sDate1,sDate2) == 1){
formatDate = "昨天"
}else if(DateDiff(sDate1,sDate2) == 2){
if( today == "星期一" || today == "星期二"){
formatDate = input.substr(0,11);
}else{
formatDate = show_day[date.getDay()-3];
}
}else if(DateDiff(sDate1,sDate2) == 3){
if( today == "星期一" || today == "星期二" || today == "星期三"){
formatDate = input.substr(0,11);
}else{
formatDate = show_day[date.getDay()-4];
}
}else if(DateDiff(sDate1,sDate2) == 4){
if( today == "星期一" || today == "星期二" || today == "星期三" || today == "星期四"){
formatDate = input.substr(0,11);
}else{
formatDate = show_day[date.getDay()-5];
}
}else if(DateDiff(sDate1,sDate2) == 5){
if( today == "星期一" || today == "星期二" || today == "星期三" || today == "星期四" || today == "星期五"){
formatDate = input.substr(0,11);
}else{
formatDate = show_day[date.getDay()-6];
}
}else if(DateDiff(sDate1,sDate2) == 6){
if( today == "星期一" || today == "星期二" || today == "星期三" || today == "星期四" || today == "星期五" || today == "星期六"){
formatDate = input.substr(0,11);
}else{
formatDate = show_day[date.getDay()-7];
}
}else {
formatDate = input.substr(0,11);
}
return formatDate ;
}
})
在html中的代码:
<i class="newstime">{{item.contents[item.contents.length - 1].time | FormatStrDate}}</i>