javascript - 如何将 JSON 字符串日期转换为自定义格式日期?

标签 javascript html angularjs json ng-filter

嗨,我想知道如何将来自响应的 JSON 字符串日期转换为 "8/24/2016"这样的格式。 我做了一个 dateFilter.js 位,但它没有'没有达到我的预期,所以这就是我尝试过的。

这是dateFilter.js(实际上它不起作用。错误:数据递归)

(function () {

    angular
        .module('myapp')
        .filter('date', function ($filter) {

            return function (input) {

                if (input == null) {

                    return "";
                    }
                var _date = $filter('date')(new Date(input), 'dd/MM/yyyy');

                return _date.toUpperCase();
            };
        });
})();

以下是我如何通过服务获取 JSON(代码不完整,因为我想展示如何获取响应。)

function GetEmpDetails(successcallback, failcallback) {

            var req = {
                method: 'GET',
                url: 'http://localhost:2222/api/GetEmployees/GetEmployeeDetails',
                headers: {
                    'Content-Type': 'application/json'
                }
            }
            $http(req).then(successcallback, failcallback);
        }

controller.js

(function initController() {

    EmployeeService.GetEmpDetails(function (res) {
        $scope.employeeDetails = JSON.parse(res.data);

        //console.log(res.data);

        }
    });

最后将过滤器应用到 html。

<table id="basic-datatables" class="table table-striped table-bordered" cellspacing="0" width="100">
   <thead style="text-align:match-parent">
       <tr>
           <th rowspan="1" colspan="1" style="width:195px">First Name</th>
           <th rowspan="1" colspan="1" style="width:195px">Last Name</th>
           <th rowspan="1" colspan="1" style="width:200px">Date Of Birth</th>
           <th rowspan="1" colspan="1" style="width:100px">Gender</th>
           <th rowspan="1" colspan="1" style="width:200px">Email</th>
           <th rowspan="1" colspan="1" style="width:100px">Mobile</th>
           <th rowspan="1" colspan="1" style="width:190px">Designation</th>
           <th rowspan="1" colspan="1" style="width:200px">Date of Join</th>
           <th rowspan="1" colspan="1" style="width:195px">NIC</th>
           <th rowspan="1" colspan="1" style="width:100px">Dept. Name</th>
       </tr>
   </thead>
   <tbody>
       <tr ng-repeat="emp in employeeDetails.slice(((currentPage-1)*itemsPerPage),((currentPage)*itemsPerPage))" style="text-align:center">
           <td>{{emp.fname}}</td>
           <td>{{emp.lname}}</td>
           <td>{{emp.DOB | date}}</td> //applying the filter
           <td>{{emp.gender}}</td>
           <td>{{emp.email}}</td>
           <td>{{emp.mobile_no}}</td>
           <td>{{emp.designation}}</td>
           <td>{{emp.date_of_join | date}}</td> //applying the filter
           <td>{{emp.nic}}</td>
           <td>{{emp.department_name}}</td>
       </tr>
   </tbody>
</table> 

那么我该怎么做呢?还有其他转换方式吗?

Final note: right now without the filter: 7/25/2016 12:00:00 AM want to convert to 7/25/2016

如果有帮助,我们将不胜感激。

最佳答案

试试这个代码。我认为这可以解决您的问题:

<td>{{emp.DOB | dateFormat}}</td>

Angular 过滤器:

.filter('dateFormat', function() {
    return function(dt) {
        var dt = new Date(dt);
        return (dt.getMonth()+1)+'/'+dt.getDate()+'/'+dt.getFullYear();
    };
  })

关于javascript - 如何将 JSON 字符串日期转换为自定义格式日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39114559/

相关文章:

javascript - Highcharts - 窗口调整大小时边距更新

javascript - 有没有一种方法可以在不定义任何属性的情况下使用 CSS 过渡?

javascript - jQuery 返回选定选项属性值

javascript - Angular : Set a default value in ng-repeat if an item's property does not exist

javascript - 类型错误 : foo is undefined when trying to call it in array

javascript - 为什么我在 React 中的 fullcalendar-scheduler 实现中没有定义时刻?

angularjs - AngularJS Controller 或指令中的 Jquery 动画?

javascript - 在 JavaScript 中赋值后项目失去值(value)

javascript - 如何在 JavaScript 中检查我的按钮是否被点击?

javascript - 如何获取单击的 ListView 项的 ID。 [javascript/jquery/jquery 移动]