{"segments":
[
{
"Group":0,
"Carrier":"TK",
"FlightNumber":"###",
"ChangeOfPlane":false,
"OptionalServicesIndicator":false,
"FlownSegment":false,
"ScheduleChange":false,
"Origin":"LHR",
"Destination":"IST",
"DepartureTime":"2016-04-12T16:30:00.000+01:00",
"ArrivalTime":"2016-04-12T22:20:00.000+03:00"
}
{
"Group":0,
"Carrier":"TK",
"FlightNumber":"118",
"ChangeOfPlane":false,
"OptionalServicesIndicator":false,
"FlownSegment":false,
"ScheduleChange":false,
"Origin":"IST",
"Destination":"KHI",
"DepartureTime":"2016-04-13T00:10:00.000+03:00"
}
]
}
这就是我想要的结构是这个字符串" DepartureTime":" 2016-04-12T16:30:00.000 + 01:00"这种格式" 21 Apr 04:40" 任何人都可以帮我这个我是角度js的新手,我想有一个过滤器,可以将我的字符串转换为我的欲望结果。 非常感谢
答案 0 :(得分:1)
我建议您使用别人的代码,就像edrian所说的那样(moment.js真的太神奇了)。
但是,如果你想自己做这个,在原生的javascript中,你需要自己解析日期。您可以参考Mozilla's developer Date page,在那里您可以找到有关如何使用日期的信息。
我为你制作了一个小jsfiddle,它可以完全满足您的需求:https://jsfiddle.net/ruwqmd2u/
您可以看到我在创建日期日期后逐行解析整个代码,同时调用函数来处理月份名称:
var myDate = new Date("2016-04-12T16:30:00.000+01:00");
// Parse the date
var day = myDate.getDay();
var month = getMonthName(myDate.getMonth());
var hours = myDate.getHours();
var mins = myDate.getMinutes();
// Get a month name from number
function getMonthName(number) {
if (number===1) return "Jan";
if (number===2) return "Feb";
if (number===3) return "Mar";
if (number===4) return "Apr";
if (number===5) return "May";
if (number===6) return "Jun";
if (number===7) return "Jul";
if (number===8) return "Aug";
if (number===9) return "Sep";
if (number===10) return "Oct";
if (number===11) return "Nov";
if (number===12) return "Dec";
}
答案 1 :(得分:1)
你需要在你的范围内
var s = "2016-04-13T00:10:00.000+03:00"; //DepartureTime
$scope.v = {
Dt: s
}
和你的html with filter
Angular: {{v.Dt | date:'dd MMMM HH:mm'}} <br />
已更新:根据您在评论中所写的内容解析您的json
在你的ctrl中
var m = yourJson;
$scope.items = m.segments;
你的HTML中的
<li ng-repeat="i in items">{{i.DepartureTime}}</li>
现在您可以使用过滤器
答案 2 :(得分:0)
解析日期对象的最佳选择是使用moment.js
如果要使用过滤器解析日期,可以安装angular-moment模块。
然后你可以在你的视图中做这样的事情(假设你将DepartureTime值分配给$ scope.date):
<span>{{ date | amParse:'DD MMM HH:mm' }}</span>
希望有帮助1
答案 3 :(得分:0)
Moment.js是解析日期的一个非常好的选择。如果你想在你的项目中使用它,那么解决方案非常简单,如下所示:
moment(DepartureTime).format('DD MMM h:m');
e.g. moment('2016-04-12T16:30:00.000+01:00').format('DD MMM h:m');
您可以选择其角度版本。您可以查看angular-momentjs。