2014-12-15 9 views
3
года

Я получил дату приходя в от API, который возвращает дату, как это: 2012-10-12 00:00:00Формат даты для

Я печать его на мою страницу, как это:

<span class="year" ng-bind-html="hit._highlightResult.original_release_date.value"></span> 

с original_release_date.value в том, что дата (2012-10-12 00:00:00). Кто-нибудь знает быстрый и простой способ просто вернуть год?

Любая помощь приветствуется. Заранее спасибо!

+0

Почему бы вам не использовать что-то вроде 'var myDate = new Date (dateFromServer)'? Я не уверен, что он будет работать на Safari. Тогда вы можете получить год просто 'myDate.getFullYear();' –

ответ

3

вы можете использовать date api в angularjs

<span class="year"> {{ hit._highlightResult.original_release_date.value | date:"yyyy" }} </span> 

hit._highlightResult.original_release_date.value должен быть (согласно документу)

Дате форматировать или как дата объект, миллисекунды (строка или число) или различные ISO 8601 форматов строки даты (например, yyyy-MM-ddTHH: mm: ss.sssZ и более короткие версии, такие как yyyy-MM-ddTHH: mmZ, yyyy-MM-dd или yyyyMMddTHHmmssZ). Если часовой пояс не указан в строковом вводе, время считается находящимся в локальном часовом поясе.

таким образом, создать javascript date объект и форматировать его, чтобы показать только год,

шаг 1 - создать фильтр, чтобы получить объект даты из строки (2012-10-12 00:00:00)

app.filter('dateToISO', function() { 
    return function(input) { 
     var dateTime = input.split(" "); 
     var date = dateTime[0]; 
     var datePartials = date.split("-"); 
     var time = dateTime[1]; 
     var timePartials = time.split(":"); 
     var formattedDate = new Date(); 
     formattedDate.setFullYear(datePartials[0]); 
     formattedDate.setMonth(datePartials[1]-1); 
     formattedDate.setDate(datePartials[2]); 
     formattedDate.setHours(timePartials[0]); 
     formattedDate.setMinutes(timePartials[1]); 
     return formattedDate; 
    }; 
}); 

шаг 2 - создать функцию контроллера, чтобы получить date object

$scope.getDate = function() { 
    return $filter('dateToISO')('2012-10-12 00:00:00'); 
}; 

шаг 3 - вызов этой функции и получить объект даты в формате в HTML

<span class="year"> {{ getDate() | date:"yyyy" }} </span> 

здесь рабочий Demo Plunker

+0

Спасибо за это! Но, похоже, это не работает. Моя дата все еще отображается как «2012-10-12 00:00:00». Стоит отметить, что он хранится в базе данных как строка. Будет ли это иметь к этому какое-нибудь отношение? – realph

+0

Возможно, эта дата: 2012-10-12 00:00:00, должна быть в таком формате: 1288323623006 – realph

+0

Weird. Даже {{2012-10-12 00:00:00 | date: "yyyy"}} возвращает 2012-10-12 00:00:00. – realph

0

Это может быть откусил и обман, но я думаю, что ' 2012-10-12 00: 00: 00'.split ('-') [0] сделают трюк

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