2016-08-12 5 views
0

日付を取得するためにタイプ日付を使用していますが、選択した日付とデータベース内に保存された日付が異なります。保存された日付は、常に私が選んだ日付の1日前になります。たとえば、私の入力では8月8日ですが、データベースでは8月7日に保存されます。どのように私はこれを修正abtに行くと私はT16:00:00Zなしの日付を表示する方法。 displayed date入力の日付がデータベースに保存されている日付と異なる

dairy.html

<div> 
<label> Date: </label> 
<input type="date" ng-model="diary.date"> 
</div> 

Data.HTMLに

<table style="width:90%" align="center" class="t3" ng-controller="RetrieveDiaryController"> 
      <tr> 
        <th style="width:40%">Date</th> 
        <th style="width:30%">Type</th> 
        <th style="width:30%">Level</th> 
      </tr> 
     <tr ng-repeat="d in diaries | orderBy:'date':true"> 
     <td>{{d.date}}</td> 
     <td>{{d.taken}}</td> 
     <td>{{d.level}}</td> 
     </tr> 
    </table> 

health.js

controller('TrackingController', ['$scope', 'Diary', '$state', function($scope, Diary, $state) { 
    $scope.diaries = []; 

$scope.submitForm = function() { 
    Diary 
    .upsert({ 
     date: $scope.diary.date, 
     taken: $scope.diary.taken, 
     level: $scope.diary.level 
    }) 
    .$promise 
    .then(function() { 
     $state.go('data'); 
    }); 
}; 
    }]) 
    .controller('RetrieveDiaryController', ['$scope', 'Diary', function ($scope, Diary) { 
     $scope.diaries = Diary.find(); 
    }]) 

答えて

0

これは、日付のタイムゾーンの値とDBが稼働マシンあなたの入力日付とサーバの間、その中にいくつかの違いによるものです。単純な日付文字列を保存する場合は、getDay()やgetFullYearなどのDateオブジェクトメソッドを使用して日付文字列を作成し、データベースに保存します。

0

YYYY-MM-DDTHH:mm:ss.SSSは、UTCの標準ISO datetime形式です。現地時間に変換せずにYYYY-MM-DD形式で取得したい場合は、このようにすることができます。

//used for padding left with 0 on one character strings. e.g. "1" => "01" 
var pad = function(str){ str = str.toString(); return "00".substring(0, 2-str.length) + str; } 

var date = new Date("2016-08-02T16:00:00.000Z"); 
var utcdatestring = date.getUTCFullYear() + "-" + pad(date.getUTCMonth() + 1) + "-" + pad(date.getUTCDate()); 
console.log(utcdatestring); //Logs "2016-08-02" 

しかし、私は非常にJavaScriptで日付を扱うことから、Moment.jsを使用することをお勧めは、バニラJavaScriptを使用して、本当に厄介です。

var date = moment.utc("2016-08-02T23:00:00.000Z"); //parse datetime string as utc date 
 
var utcdatestring = date.format("YYYY-MM-DD"); //use .format() to get date string in any format you want 
 
console.log(utcdatestring); // Logs "2016-08-02"
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.js"></script>

0

基本的な日付フィルタまたは角度

<!DOCTYPE html> 
 
<html> 
 
\t <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 
\t <body> 
 
\t \t <div ng-app="myApp" ng-controller="datCtrl" ng-model="test='2016-08-02T16:00:00.000Z'"> 
 
\t \t \t <p>Date = {{ test| date }}</p> 
 
\t \t </div> 
 
\t \t <script> 
 
var app = angular.module('myApp', []); 
 
app.controller('datCtrl', function($scope) { 
 
    $scope.today = new Date(); 
 
}); 
 
</script> 
 
\t </body> 
 
</html>

をお試しください
関連する問題