2015-02-23 22 views
1

我面临同样的问题,通过使用上面提到的代码问题仍然没有解决。 我的日期是在JSON未来像 ​​如何更改Angularjs中的日期格式

where 20= date 
     05= month 
     15= year, 

我使用下面的代码: -

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

,但它给了我:

Thu, jan 01 

,但我想

Wed, May 20 

请帮助相同。

回答

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>

+0

以及做什么随着时间的推移,如果JSON给我的时间如下: 0513其中05小时和13分钟 – 2015-02-23 18:58:52

+0

你的意思是在字符串的末尾?像这样:'2005150513'? – DonJuwe 2015-02-24 07:41:35

+0

没有它的一个单独的值,但我想以同样的方式显示像05:13 – 2015-02-24 12:26:59

0

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

首先,你必须使用基本的日期API来创建你的约会

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

,并使用所创建的对象在你的代码过滤后

0

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