将时间转换为ISO到角度格式

时间:2014-08-18 05:11:47

标签: javascript angularjs filter iso

我正在点击API并获取JSON数据。

我需要使用角度过滤器更改JSON的格式。我收到的日期格式为:10/07/2014,时间格式为:0745

我写了一个名为的角度函数,将日期转换为ISO:

appController.filter('dateToISO', function(){
return function(input) {
    input = new Date(input).toISOString();
    return input;
};

});

然后我使用角度过滤器正确渲染它(date = 10/07/2014

{{outboundFlights.departure_day | dateToISO | date: 'mediumDate'}}

然后把它放在:Oct 7, 2014

不幸的是,这不适用于时间(时间= 0745):

{{outboundFlights.arrival_time | dateToISO  | date: 'shortTime'}} 

输出:6:00PM

知道为什么日期有效,但时间没有,任何可能的解决方案?

我需要将时间转换为ISO,以便我可以正确使用过滤器。

1 个答案:

答案 0 :(得分:0)

所以我认为它。我不得不把它转换为"正常"超时使用自定义过滤器:

appController.filter('timeToNormal', function(){
return function(input) {
    var splitTime   = input.split("");
    var timeFormat  = splitTime[0]+splitTime[1]+":"+splitTime[2]+splitTime[3];
    var newTime     = new Date("June 19, 1987 "+splitTime[0]+splitTime[1]+":"+splitTime[2]+splitTime[3]);
    return newTime;
};});

第一次我把它分成一个数组,然后在第二个和第二个之间放一个冒号:。第3个数字,然后使用普通日期过滤器传递,使用HTML,如下所示:

{{outboundFlights.arrival_time | timeToNormal  | date: 'shortTime'}}

然后将其作为内置" date"的可接受格式。角度滤波器处理。