一尘不染

使用angularjs将UTC转换为当地时间

angularjs

作为json的回应,我正在获取UTC时区。我需要将其转换为当地时间。

<span class="text-muted">{{trans.txnDate}}</span>

有人可以帮忙吗?


阅读 517

收藏
2020-07-04

共1个答案

一尘不染

编辑(2017年1月2日):请参阅@Jason的答案,它比这更好,因为它使用自定义过滤器修复日期格式-这是更Angular的方法。


我的原始答案和修改内容:

您可以使用date过滤器格式化日期:

<span class="text-muted">{{trans.txnDate | date:'yyyy-MM-dd HH:mm:ss Z' }}</span>

这将输出:

2010-10-29 09:10:23 +0530

(假设trans.txnDate = 1288323623006;

请参阅dateangularjs.org中的此文档。它有很多示例,非常有帮助!


编辑:

根据您的评论,使用以下命令获取日期17 oct 2014

<span class="text-muted">{{trans.txnDate | date:'dd MMM yyyy' | lowercase }}</span>

检查我上面提到的文档链接。

编辑2:

为了回应您的其他评论,请使用以下代码。问题是所获取的字符串格式不正确,因此Date对象无法识别它。我已经在控制器中对其进行了格式化,然后传递给了视图。

function MyCtrl($scope) {

  var dateString = "2014:10:17T18:30:00Z";

  dateString = dateString.replace(/:/, '-'); // replaces first ":" character

  dateString = dateString.replace(/:/, '-'); // replaces second ":" character

  $scope.date = new Date(dateString);

}


<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>



<div ng-app ng-controller="MyCtrl">

  {{date | date:'dd MMM yyyy' | lowercase }}

</div>

通过寻找一种更聪明的方法来替换:字符的前两个出现位置,可以改进用于替换的JS代码。

2020-07-04