Angular 2日期时间格式导致不正确的时间出现

时间:2017-03-19 17:30:49

标签: html angular datetime ionic-framework

所以我在Ionic应用程序中从数据库返回一些日期时间。 返回的数据是正确的,但是当我使用Angular推荐的格式化日期时间的方式时,时间会变为不正确的。

我想做的就是把我的约会时间简单地显示出时间,而不是那天/月/年。

例如:

我回来的时间是2017-03-19T08:00:00

当我使用shortTime仅返回时间时,这就是我的浏览器2:00 AM中显示的内容。

问题:造成这种时间格式差异的原因是什么,我该怎么做才能解决问题?

编辑:这是我正在返回的数据和前端HTML 的屏幕截图 enter image description here

home.html的

<ion-item text-wrap *ngFor="let item of dateEvent">
    <p><b>Event Start:</b> {{item.EventStart | date:'shortTime'}}</p>
    <p><b>Event End:</b> {{item.EventEnd | date:'shortTime'}}</p>
    </ion-item>
  </ion-item>
  <ion-item *ngIf="!hasEvent" text-wrap>
    <p >Looks like you don't have any events on {{dateTime | date: 'MM/dd/YYYY'}}!</p>
  </ion-item>
  <h6 text-center="true"><b>NEXT EVENT:</b></h6>
  <ion-item *ngIf="hasNextEvent">
  <ion-item text-wrap *ngFor="let item of nextEvent">
    <p><b>Date:</b> {{item.EventStart | date:'MM/dd'}}</p>
    <p><b>Event Start:</b> {{item.EventStart | date:'shortTime'}}</p>
    <p><b>Event End:</b> {{item.EventEnd | date:'shortTime'}}</p>
    </ion-item>
  </ion-item>
  <ion-item *ngIf="!hasNextEvent" text-wrap>
      <p >Looks like you don't have any future events scheduled!</p>
    </ion-item>
</ion-content>

2 个答案:

答案 0 :(得分:1)

您在所提供的对象中获得的日期为proc accessLoc { attime node_id} { set fb [open "node_info.txt" r] set filecontent [read $fb] close $fb foreach elem [split $filecontent "\n"] { lassign [split $elem " "] thisAtTime thisId xCoord yCoord if {$thisAtTime eq $attime && $thisId eq $node_id} { return [list $xCoord $yCoord] } } error "did not find the item" } UTC日期,该日期在同一天等于2017-03-19T08:00:00。你不必担心它。 JavaScript始终将日期转换为本地时区,然后在浏览器中显示它。类似地,当我们输入日期时,它采用本地时区并以UTC日期的形式交付给服务器。

我刚尝试使用您提供的相同日期时间。它向我展示了2:00 AM (Mountain Time)

答案 1 :(得分:0)

它似乎与该值一起正常工作。你确定你有正确的价值吗?

下面是使用shortTime的日期过滤器的一个工作示例:

&#13;
&#13;
(function() {

  'use strict';

  angular.module('app', []);

})();

(function() {

  'use strict';

  angular.module('app', []).controller('MainController', MainController);

  MainController.$inject = ['$filter'];

  function MainController($filter) {

    var vm = this;

    vm.date = "2017-03-19T08:00:00";
    
    vm.formattedDate = $filter('date')(vm.date, 'shortTime');

  }


})();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="app" ng-controller="MainController as MainCtrl">

  Formatted date in HTML template binding: {{MainCtrl.date | date: 'shortTime'}}
  
  <br>
  
  Formatted date from controller: {{MainCtrl.formattedDate}}

</div>
&#13;
&#13;
&#13;