#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?