将GMT日期格式转换为仅时间格式

时间:2015-07-12 11:50:41

标签: json angularjs datetime

我正在使用AngularJS构建一个html应用程序,其中我想在html页面上显示json文件数据。任何人都可以帮助我将GMT日期格式从json文件转换为小时:分钟AM / PM

Json文件如下所示:

[
    {
        "startTime": "Sun May 24 2015 01:00:00 GMT+0530 (IST)",
        "endTime": "Sun May 24 2015 01:30:00 GMT+0530 (IST)",
        "title": "Event 1"
    },
    {
        "startTime": "Sun May 24 2015 04:00:00 GMT+0530 (IST)",
        "endTime": "Sun May 24 2015 06:00:00 GMT+0530 (IST)",
        "title": "Event 2"
    },
    {
        "startTime": "Sat May 23 2015 20:00:00 GMT+0530 (IST)",
        "endTime": "Sat May 23 2015 21:30:00 GMT+0530 (IST)",
        "title": "Event 3"
    },
    {
        "startTime": "Sat May 23 2015 21:30:00 GMT+0530 (IST)",
        "endTime": "Sat May 23 2015 22:15:00 GMT+0530 (IST)",
        "title": "Event 4"
    },
    {
        "startTime": "Sun May 24 2015 02:00:00 GMT+0530 (IST)",
        "endTime": "Sun May 24 2015 03:00:00 GMT+0530 (IST)",
        "title": "Event 5"
    }
]

2 个答案:

答案 0 :(得分:1)

将json数据分配给范围变量:

scope.data = [
    {
        "startTime": "Sun May 24 2015 01:00:00 GMT+0530 (IST)",
        "endTime": "Sun May 24 2015 01:30:00 GMT+0530 (IST)",
        "title": "Event 1"
    },
    ...
];
在您的HTML中

,您可以像这样使用angularjs date filter

<div>{{ data[0] | date: 'h:m a' }}</div>

答案 1 :(得分:0)

@worldask提供的链接说

  

日期格式为日期对象毫秒(字符串或数字)或各种ISO 8601   日期时间字符串格式(例如yyyy-MM-ddTHH:mm:ss.sssZ及其更短   版本如yyyy-MM-ddTHH:mmZ,yyyy-MM-dd或yyyyMMddTHHmmssZ)。如果   在字符串输入中没有指定时区,考虑时间   在当地时区。

所以我使用自定义过滤器将Sun May 24 2015 01:00:00 GMT+0530 (IST)转换为milliseconds,然后使用角度过滤器显示为hh:mm AM/PM

HTML

<div ng-repeat="date in dateJson">
      {{date.startTime | myDateFilter | date:'hh: mm a' }}
</div>

dateJson是你的样本json ......

自定义过滤器

app.filter('myDateFilter', function() {

  return function(dateString) {
    var date = new Date(dateString)

    // converting to milliseconds
    dateString = date.getTime();
    return dateString;
  }
});

SAMPLE PLUNKER