格式化日期到年份

时间:2014-12-15 03:59:56

标签: angularjs

我从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)。有谁知道回归这一年的快捷方式?

感谢任何帮助。提前谢谢!

2 个答案:

答案 0 :(得分:3)

您可以使用angularjs中的date api

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

hit._highlightResult.original_release_date.value应该是(根据文档)

  

格式化为Date对象,毫秒(字符串或数字)或各种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

答案 1 :(得分:0)

这可能有点过失和作弊,但我认为&#39; 2012-10-12 00:00:00&#39; .split(&#39; - &#39;)[0]会做特技