使用过滤器转换日期和时间数据的角度

时间:2016-12-27 07:55:46

标签: javascript angularjs datetime

我有一些我需要转换的独特数据

需要将"01/23/2017"转换为23-Jan-17 (Fri)

还需要转换0238 //我认为这是2小时38分钟?

最后转换15:00 //我假设军队?到3:00pm? 样本数据

"ArrivalDate": "01/23/2017",
"DepartureDate": "01/23/2017",
"DepartureAirport": "ORD",
"DepartureTime": "15:00",
"ArrivalAirport": "MCO",
"ArrivalTime": "18:38",
"TravelTime": "0238",

3 个答案:

答案 0 :(得分:0)

由于您提供的信息非常少,我只能在下面给您一些建议:

最好能让您的输入采用日期时间格式,例如1482826055407,然后您可以通过角度日期过滤器获得您喜欢的任何显示日期格式,或者您可以创建自定义日期过滤器。

以下是使用时刻支持全球化的自定义日期过滤器示例,如果您不需要该功能,则可以使用角度$filter('date')服务替换它。

    angular.module('aaa.ccc')
        .filter('momentDate', [
        function () {
            'use strict';
            return function (timestamp) {
                if(!isNaN(parseInt(timestamp))){
                    return moment(parseInt(timestamp)).format('L');
                }

            };
        }
    ]);

答案 1 :(得分:0)

您可以使用这些方法getTravelDateFormattedgetTravelDateFormatted创建两个AngularJS过滤器:

var getTravelDateFormatted = function (str) {
      var daysNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
        monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec'],
        d = new Date(str),
        day = d.getDate(),
        month = monthNames[d.getMonth()],
        year = d.getFullYear().toString().substr(2, 2),
        dayName = daysNames[d.getDay()];
      return day + '-' + month + '-' + year + ' (' + dayName + ')';
    },
    getTravelTimeFormatted = function (str) {
      var hours = Math.trunc(str / 60),
        minutes = str % 60;          
      return hours + ':' + minutes;
    };

console.log(getTravelDateFormatted('01/23/2017'));
console.log(getTravelTimeFormatted('0238'));

答案 2 :(得分:0)

您可以使用angularjs date filter

首先,您需要将字符串转换为日期$scope.someDate = new Date('01/23/2017')

然后在视图{{someDate | date:'dd-MMM-yy (EEE)'}}

中使用角度过滤器

或者您可以通过控制器中的$filter使用日期过滤器。