如何更改Angularjs中的日期格式

时间:2015-02-23 13:28:23

标签: angularjs

我面临同样的问题,通过使用上面提到的代码问题仍然没有解决。 我的约会对象是JSON  200515

where 20= date
      05= month
      15= year,

我使用以下代码: -

{{200515 | date : "EEE, MMM dd"}}

但它给了我:

Thu, jan 01

但我想要

Wed, May 20

请帮忙。

3 个答案:

答案 0 :(得分:0)

只需使用.substring()来解析日期字符串并构建新的日期对象。这适用于角度的日期过滤器。

var myApp = angular.module('myApp',[]);

function MyCtrl($scope) {
  var date = '200515',
      day = date.substring(0, 2),
      month = date.substring(2, 4),
      year = date.substring(4, 6),
      time = '0513',
      hour = time.substring(0, 2),
      minute = time.substring(2, 4);
  $scope.date = new Date('20' + year, month - 1, day, hour, minute);
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="myApp", ng-controller="MyCtrl">
  {{date | date : "hh:mm EEE, MMM dd"}}
</div>

答案 1 :(得分:0)

您必须在使用过滤器之前创建日期对象,因为它只会格式化日期。这里你的日期是空的。

首先,您必须使用基本日期api

创建日期

new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]]]);

并在使用过滤器

在代码中使用创建的对象之后

答案 2 :(得分:0)

您的日期200015的输入字符串不是有效的ISO 8601日期字符串。您必须提供javascript Date对象或有效的格式字符串,例如'yyyy-MM-ddTHH:mm:ss.sssZ'或'yyyy-MM-ddTHH:mmZ'等。请参阅http://en.wikipedia.org/wiki/ISO_8601