programing

각도: 날짜 필터에 시간대가 추가됩니다. UTC를 출력하려면 어떻게 해야 합니까?

stoneblock 2023. 3. 25. 09:15

각도: 날짜 필터에 시간대가 추가됩니다. UTC를 출력하려면 어떻게 해야 합니까?

날짜 필터를 사용하여 유닉스 타임스탬프를 특정 형식으로 렌더링하고 있습니다.필터가 로컬 시간대를 출력에 추가한 걸 봤어요.

시간대 정보를 추가하지 않고 정확한 타임스탬프를 출력할 수 있는 방법이 있습니까?

입력:

talk.content.date_and_time = 1400167800 

(05/15/14 @ 오후 3:30:00 UTC)

코드:

{{talk.content.date_and_time*1000 | date:'dd-M-yyyy H:mm Z'}}

출력:

15-5-2014 17:30 +0200

17시 30분이 아니라 15시 30분에 출력을 낼 수 있는 방법은 무엇입니까?

이후 버전1.3.0각진JS가 추가 필터 매개 변수를 도입했습니다.timezone다음과 같습니다.

{{ date_expression | date : format : timezone}}

그러나 버전에서는1.3.x지원되는 표준 시간대만UTC다음과 같이 사용할 수 있습니다.

{{ someDate | date: 'MMM d, y H:mm:ss' : 'UTC' }}

이후 버전1.4.0-rc.0각진JS는 다른 시간대도 지원합니다.가능한 모든 시간대를 테스트한 것은 아니지만, 예를 들어 일본 표준시로 날짜를 취득하는 방법(JSP, GMT +9)은 다음과 같습니다.

{{ clock | date: 'MMM d, y H:mm:ss' : '+0900' }}

여기서 Angular의 문서를 찾을 수 있습니다.JS 날짜 필터

메모: 이것은 Angular 1.x에서만 동작합니다.

다음은 작업 예시입니다.

'Z'는 시간대 정보를 추가합니다.출력 UTC에 대해서는, 그것이 혼란의 대상인 것 같습니다.사람들은 모멘트에 끌리는 것 같습니다.

답변에서 인용하면 다음과 같은 작업을 즉시 수행할 수 있습니다.js:

컨트롤러

var app1 = angular.module('app1',[]);

app1.controller('ctrl',['$scope',function($scope){

  var toUTCDate = function(date){
    var _utc = new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(),  date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());
    return _utc;
  };

  var millisToUTCDate = function(millis){
    return toUTCDate(new Date(millis));
  };

    $scope.toUTCDate = toUTCDate;
    $scope.millisToUTCDate = millisToUTCDate;

  }]);

템플릿

<html ng-app="app1">

  <head>
    <script data-require="angular.js@*" data-semver="1.2.12" src="http://code.angularjs.org/1.2.12/angular.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
  </head>

  <body>
    <div ng-controller="ctrl">
      <div>
      utc {{millisToUTCDate(1400167800) | date:'dd-M-yyyy H:mm'}}
      </div>
      <div>
      local {{1400167800 | date:'dd-M-yyyy H:mm'}}
      </div>
    </div>
  </body>

</html>

가지고 놀 수 있는 더 좋은 방법이 있다

이것이것도 참조해 주세요.

또한 이 방법을 사용하면 Angular의 날짜 필터에서 'Z'를 사용하면 로컬 시간대 오프셋이 인쇄되는 것 같습니다.

날짜 필터는 항상 로컬 시간대를 사용하여 날짜 형식을 지정합니다.필터를 직접 작성해야 합니다.getUTCXxx()또는 라이브러리와 같은 모멘트.module의 메서드.methods.block.

어플리케이션에 getLocaleString() 함수를 사용했습니다.로케일에 공통되는 시간 형식을 조정해야 하므로 +0200 등은 사용할 수 없습니다.물론 끈의 폭을 조절할 수 있는 가능성은 적어집니다.

var str = (new Date(1400167800)).toLocaleString();

언급URL : https://stackoverflow.com/questions/21782893/angular-date-filter-adds-timezone-how-to-output-utc