Формат даты Angularjs

#angularjs #date #filter

#angularjs #Дата #Фильтр

Вопрос:

Печать даты, подобной:

 {{current.sys.sunrise | date:date}}
  

Проблема в том, что она хранится в базе данных, например: 1476873429.
Полагаю, что это миллисекунды с 1970 года.
Результат примерно такой: 18 января 1970 года.

Требуется ли какой-то пользовательский фильтр для форматирования в соответствии с текущим временем?

Ответ №1:

Вы должны умножить свои временные метки на 1000, вы сохраняете секунды, но JavaScript Date -ы принимают миллисекунды в качестве аргументов :

 console.log(new Date(1476873429)) // outputs Sun Jan 18 1970
console.log(new Date(1476873429 * 1000)) // outputs Wed Oct 19 2016
  

Ответ №2:

Вы можете попробовать вот так :

 $filter('date')(date, format, timezone)
  

то есть

  <span ng-non-bindable>{{1288323623006 | date:'medium'}}</span>:
    <span>{{1288323623006 | date:'medium'}}</span><br>
<span ng-non-bindable>{{1288323623006 | date:'yyyy-MM-dd HH:mm:ss Z'}}</span>:
   <span>{{1288323623006 | date:'yyyy-MM-dd HH:mm:ss Z'}}</span><br>
<span ng-non-bindable>{{1288323623006 | date:'MM/dd/yyyy @ h:mma'}}</span>:
   <span>{{'1288323623006' | date:'MM/dd/yyyy @ h:mma'}}</span><br>
<span ng-non-bindable>{{1288323623006 | date:"MM/dd/yyyy 'at' h:mma"}}</span>:
   <span>{{'1288323623006' | date:"MM/dd/yyyy 'at' h:mma"}}</span><br>
  

Комментарии:

1. есть идеи о том, как получить дату в $filter, когда она находится в $scope.current.sys.sunrise?