以Angular/Express格式将日期转换为分钟和分钟转换为日期



这是我的uebersetzer.service.js:

module.exports = function (app, Uebersetzer) {

    app.post('/rest/uebersetzer', function (req, res) {
        var uebersetzer = req.body;
        console.log("before" + uebersetzer.zeit);
        uebersetzer.zeit = timeToMinutes(uebersetzer.zeit);
        console.log("after" + uebersetzer.zeit);
                Uebersetzer.create(uebersetzer, function (err, result) {
                    res.json(result);
                });
            }
        });
    });
    app.get("/rest/uebersetzer/:id", function (req, res) {
        Uebersetzer.findById(req.params.id, function (err, uebersetzer) {
            console.log("get uebersetzer by id before" + uebersetzer.zeit);
            uebersetzer.zeit = minutesToDate(uebersetzer.zeit);
            console.log("get uebersetzer by id " + uebersetzer.zeit);
            res.send(uebersetzer);
        });

    });
    function timeToMinutes(time) {
        var hours = time.getHours * 60;
        var minutes = time.getMinutes;
        time = hours + minutes;
        console.log(time);
        return time;
    }
    function minutesToDate(minutes) {
        var hours = Math.floor(minutes / 60);
        var minute = minutes % 60;
        var date = new Date(1, 1, 1970, hours, minute, 00);
        console.log(date);
        return date;
    }
};

Uebersetzer.controller.js

(function () {
    angular
        .module("PassportApp")
        .controller("UebersetzerController", UebersetzerController);
    function UebersetzerController(UebersetzerService) {
        var vm = this;
        vm.addUebersetzer = addUebersetzer;
        vm.removeUebersetzer = removeUebersetzer;
        vm.selectUebersetzer = selectUebersetzer;
        vm.updateUebersetzer = updateUebersetzer;
        vm.uebersetzer = {};
        function updateUebersetzer(uebersetzer) {
            UebersetzerService.update(uebersetzer, function (response) {
                findAllUebersetzers(setAllUebersetzer);
            });
        }
        function selectUebersetzer(uebersetzerId) {
            UebersetzerService.findUebersetzerById(uebersetzerId, function (response) {
                vm.uebersetzer = response;

            });
        }
        function removeUebersetzer(uebersetzerId) {
            UebersetzerService.removeUebersetzer(uebersetzerId, function (response) {
                findAllUebersetzers(setAllUebersetzers);
            });
        }
        function addUebersetzer(newUebersetzer) {
            UebersetzerService.createUebersetzer(newUebersetzer, function (response) {
                findAllUebersetzers(setAllUebersetzers);
            });
        }
        function findAllUebersetzers(callback) {
            UebersetzerService.findAllUebersetzers(callback);
        }
        function setAllUebersetzers(uebersetzers) {
            vm.uebersetzers = uebersetzers;
        }
        findAllUebersetzers(setAllUebersetzers);
    }
})();

Uebersetzer.html

<h1>Uebersetzer</h1>
<table class="table table-striped">
    <thead>
    <tr>
        <th>Name</th>
        <th>Sprache</th>
        <th>Zeit</th>
    </tr>
    <tr>
        <td><input ng-model="controller.uebersetzer.name" class="form-control" placeholder="Name" type="text"/></td>
        <td><input ng-model="controller.uebersetzer.sprache" class="form-control" placeholder="Sprache" type="text"/>
        <td><input ng-model="controller.uebersetzer.zeit" class="form-control" placeholder="Zeit" type="time"/>
            <button ng-click="controller.addUebersetzer(controller.uebersetzer)" class="btn btn-primary">
                <span class="glyphicon glyphicon-plus"></span>
            </button>
            <button ng-click="controller.updateUebersetzer(controller.uebersetzer)" class="btn btn-success">
                <span class="glyphicon glyphicon-ok"></span>
            </button>
        </td>
    </tr>
    </thead>
    <tbody>
    <tr ng-repeat="uebersetzer in controller.uebersetzers">
        <td>{{uebersetzer.name}}</td>
        <td>{{uebersetzer.sprache}}</td>
        <td>{{uebersetzer.zeit|minDate|date:'HH:mm'}}</td>
        <td>
            <button ng-click="controller.removeUebersetzer(uebersetzer._id)" class="btn btn-danger">
                <span class="glyphicon glyphicon-remove"></span>
            </button>
            <button ng-click="controller.selectUebersetzer(uebersetzer._id)" class="btn btn-info">
                <span class="glyphicon glyphicon-pencil"></span>
            </button>
        </td>
    </tr>
</table>

我有两个控制台命令的"app.post"。console.log显示我在约会之前("1970-01-01T00:11:00.000Z之前"),但转换后只显示NaN。我的角色是timeToMinutes()。

在"app.get"中,分钟数来自数据库,我将其更改为日期。我的两个给console.log"在100之前通过id获取uebersetzer"one_answers"通过id获取uebersetzer 1906年6月24日星期日01:40:00 GMT+0200(中欧夏令时间)",但它不在接受的html中的输入字段中,尽管其他数据是从数据库中的字段(名称和sprache)中写入的。我希望它不是太多代码或太少代码。我为我糟糕的英语道歉。

timeToMinutes函数内部存在错误。getHoursgetMinutes是函数,因此需要使用()调用这些函数。它应该是这样的:

function timeToMinutes(time) {
    var hours = (new Date(time)).getHours() * 60;
    var minutes = (new Date(time)).getMinutes() ;
    time = hours + minutes;
    console.log(time);
    return time;
}

最新更新