使用angularfire和firebase显示日期时出错

时间:2016-06-24 13:48:09

标签: angularjs firebase angularfire firebase-realtime-database

我无法使用Angularfire从firebase显示日期(存储为Unix时间戳整数)。

我有以下html:

<div class="form-group"">
    <label for="message-followUp" class="control-label">Follow Up Date:</label>
    <input type="date" id="message-followUp" ng-model="postToUpdate.followUp">
</div>

和以下控制器:

 $scope.notePost = function (id) {
    var firebaseObj = new Firebase("https://firebase_url/Records/" + id);
    $scope.postToUpdate = $firebaseObject(firebaseObj);
};

在返回的数据中,我有一个名为'followUp'的密钥,其中包含Unix时间戳。显示html时出现以下错误:

  

错误:[ngModel:datefmt]预期1466773470397为日期

我希望我能在新的日期()中包装'postToUpdate.followUp',但这不起作用

如何将Unix时间戳转换为正确的日期格式(yyyy-MM-dd),以便显示而不会出现错误?

由于

1 个答案:

答案 0 :(得分:0)

您从firebase检索的数据是一个字符串,并且inux时间戳在传递给new Date时应该是一个整数。

JS

$scope.notePost = function (id) {
    var firebaseObj = new Firebase("https://firebase_url/Records/" + id);
    $scope.postToUpdate = $firebaseObject(firebaseObj);
    $scope.postToUpdate.$loaded(
        function(data) {
            console.log(data);
            $scope.date = new Date(parseInt(data.followUp));
        },
        function(error) {
            console.error("Error:", error);
        }
    );
};

HTML

<div class="form-group"">
    <label for="message-followUp" class="control-label">Follow Up Date:</label>
    <input type="date" id="message-followUp" ng-model="date">
</div>

Working jsFiddle here