2014-04-08 2 views
1

Привет Я просто распечатав DateTime, используя угловой фильтр даты и это, как мой код выглядит на самом деле:Угловые JS - форматирование даты и времени, чтобы соответствовать условию

<small class="muted smaller"> 

     {{row.insert_datetime | date : 'shortTime'}}, 
     {{row.insert_datetime | date : 'longDate'}} 
    </small> 

поэтому результат довольно хорошо, и он возвращается:

<small class="muted smaller"> 
      5:22 PM, 1 April 2010 
</small> 

что я хотел бы больше, чтобы вернуть что-то подобное с условиями:

if(today == 1 April 2010){ 
print 5:22 PM 
}else{ 
print 5:22 PM , 1 April 2010 
} 

Возможно ли каким-либо образом добавить это условие?

ответ

1

Вы можете использовать угловую концепцию фильтра, вы можете изменить это в дальнейшем, чтобы достичь своей цели

angular.module('yourmodule').filter('hbdate', function($filter) 
{ 
    return function(input) 
    { 
     if(input == null){ return ""; } 
     var _date = $filter('date')(new Date(input), 'MMM dd yyyy'); 
       if{ 
       your condition 
       } 

     return _date.toUpperCase(); 
    }; 
}); 

Date filtering and formatting in Angular js.

+0

+1 cool right Я попробую и приму ваш ответ, если не лучшие: D спасибо большое – sbaaaang

1

Это выполнимо как:

<span> 
    {{ row.insert_datetime | date : 'shortTime' }} 
    {{ row.insert_datetime === today && ' ' || (',' + (row.insert_datetime | date : 'longDate')) }} 
</span> 

Но это некрасиво; возможно, вам стоит попробовать сделать это в коде. (Если вы это сделаете, обратите внимание на пробел в строке после && - это необходимо.)

+0

что сегодня в вашем случае извините? – sbaaaang

+0

'today' - это то, что можно сравнить с' row.insert_datetime'; дата, установленная на текущую дату. Сравнение должно будет игнорировать время, вы можете проверить [momentjs] (http://momentjs.com/). –

Смежные вопросы