【问题标题】:Convert Time to ISO to Angular Format将时间转换为 ISO 到角度格式
【发布时间】:2014-08-18 05:11:47
【问题描述】:

我正在访问一个 API 并取回 JSON 数据。

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

我写了一个 Angular 函数,将日期转换为 ISO:

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

});

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

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

然后输出:Oct 7, 2014

很遗憾,这对时间不起作用(时间 = 0745):

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

它输出:6:00PM

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

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

【问题讨论】:

  • 我认为您需要先将军事时间格式更改为正常格式才能使其正常工作Reference

标签: javascript angularjs filter iso


【解决方案1】:

所以我想知道它。我必须使用自定义过滤器将其转换为“正常”超时:

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;
};});

第一次我把它分成一个数组,然后在第二个和第三个数字之间放一个冒号:,然后用普通的日期过滤器通过它,HTML如下:

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

然后将其设置为内置“日期”角度过滤器可以处理的可接受格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-15
    • 2015-11-16
    • 2019-05-21
    • 1970-01-01
    • 2020-11-23
    • 1970-01-01
    相关资源
    最近更新 更多