programing

Angular JS태그 값 변환(시간을 사람이 읽을 수 있는 시간으로 변환)

oldcodes 2023. 2. 28. 23:45
반응형

Angular JS태그 값 변환(시간을 사람이 읽을 수 있는 시간으로 변환)

데이터베이스에서 데이터를 가져와 표시하는 중:

    <ul>
       <li ng-repeat="item in items>
          <mydate>{{item.date}}</mydate>
        </li>
    </ul>

어디에{{item.date}}는 1374843600 등의 UNIX 날짜입니다.Angular를 사용하여 날짜 형식을 설정하려면 어떻게 해야 합니까?JS 디렉티브?가능합니까?

시도했을 때 mydate 태그 값을 받았습니다.{{item.date}}

Epoch 시작부터 초수 또는 JavaScript에서 사용되는 밀리초 단위로 포맷된 unix 시간의 문제에 직면했습니다.엄밀히 말하면 앵글JS는 Unix 타임스탬프를 Date로 변환하지 않고 밀리초 단위로 1000배 크기 때문에 먼저 다음과 같이 1000을 곱해야 합니다.

<mydate>{{item.date * 1000 | date:'yyyy-MM-dd HH:mm:ss Z'}}</mydate>

그렇지 않으면 날짜가 틀릴 거예요.

형식 사용date filter다음과 같습니다.

<mydate>{{item.date * 1000 | date:'yyyy-MM-dd HH:mm:ss Z'}}</mydate>

언급

Unix 타임스탬프가 있는 경우 Unix 타임스탬프는 초 단위이고 AngularJs 날짜 필터에는 밀리초가 필요하므로 타임스탬프에 1000을 곱해야 합니다.

vm.milliseconds = Date('1441981121' * 1000);

다음으로 $filter() 함수를 사용합니다.

var date = $filter('date')(vm.milliseconds, 'd MMMM yyyy');

또는 ng-module로 사용할 수 있습니다.

<span ng-bind="myController.milliseconds | date : 'd MMMM yyyy'"></span>

angular에 의해 이미 제공된 날짜 필터를 사용해야 합니다. 여기서

 yourapp.filter('timestampToDate', function () {
    return function (timestamp) {
        var date = new Date(timestamp * 1000);
        var dateObject = date.getFullYear() +'/'+ ('0' + (date.getMonth() + 1)).slice(-2) +'/'+ ('0' + date.getDate()).slice(-2);
        return dateObject;
    };
});

사용방법:
{{timestamp | timestampToDate}}

rsTime이라고 불리는 명령어가 있습니다.

    <rs-time start-time="1478513323" digital-format="'ddd MMM d h:mm TT'"></rs-time>

Plunker에서 데모를 확인합니다.

다음은 다양한 시간 형식입니다.

 M/d/y -  11/7/2016

 HH:mm:ss - 16:02:31 (24hrs formate)

 hh:mm:ss TT - 04:03:10 PM

 ddd MMM d h:mm TT  - Mon Nov 7 at 4:04 PM

문서를 보려면 Github을 방문하십시오.

언급URL : https://stackoverflow.com/questions/17925020/angularjs-convert-tag-value-unix-time-to-human-readable-time

반응형