programing

각도가 $140입니다.날짜를 UTC 날짜로 변경 후

showcode 2023. 3. 11. 09:40
반응형

각도가 $140입니다.날짜를 UTC 날짜로 변경 후

REST api 에 、 REST api 。디버깅 JS 입니다.Date는 JS Date입니다.Tue Apr 04 2017 00:00:00 GMT+0530

날짜로 됩니다.UTC 날짜로 변환됩니다."2017-04-03T18:30:00.000Z"

index.html에 angular의 로케일파일을 포함할 필요가 있는 솔루션을 검색했습니다.이 작업을 실시했습니다.

<script type="text/javascript" src="resources/js/angular/angular-locale_en-in.js"></script>

도움이 되진 않아요필터에 날짜 형식을 추가하는 등의 솔루션을 본 적이 있지만 글로벌 솔루션을 원합니다.도움이 필요하신가요?감사합니다:)

날짜, 시간, 시간대도 헷갈렸습니다.아마도 이 답변이 당신이 그것들을 어떻게 다룰 수 있는지에 대한 통찰력을 줄 것이다.

Chrome의 개발자 콘솔에서 다음 코드를 사용하여 동일한 날짜가 다른 형식으로 표시되는지 확인하십시오.

var date = new Date();
date.toISOString(); // "2017-04-29T09:54:28.714Z"
date.toGMTString(); //"Sat, 29 Apr 2017 09:54:28 GMT"
date.toLocalString(); //"4/29/2017, 3:24:28 PM"

클라이언트에서 작성한 날짜는 항상 제로 타임존 오프셋으로 기록됩니다. UTC+/-00:00 Z간단하게 말하면, UTC 와 GMT 는 같은 것으로 생각할 수 있습니다.표시 목적에 관해서는 브라우저의 타임존에 따라 같은 날짜가 표시됩니다. 하면.console.log (date)Sat Apr 29 2017 15:24:28 GMT+0530 (IST)단, 날짜의 내부 기록이 브라우저의 타임존에 따른 것은 아닙니다.브라우저의 타임존에 따라 화면/콘솔에 표시됩니다.

날짜 표현은 한 시간대에서 다른 시간대로 변환되는 것이 아니라 동일한 날짜에 대한 다른 표현으로 간주합니다.에는 '비슷하다'로 표시됩니다.GMT+0530서버에 송신되는 오프셋은, 제로 타임 존오프셋으로 같은 날짜입니다.

코멘트대로 GMT+0530 시간대로 4월 4일 00:00 AM을 선택하면 내부적으로 GMT+0 시간대로 4월 3일 18:30 PM이 됩니다.즉, 제로 타임존 오프셋입니다.그대로 서버에 보내겠습니다.이 날짜를 사용해야 할 경우 서버에서 4월 3일로 돌아와 브라우저의 시간대 오프셋에 따라 브라우저에 표시됩니다.변환은 포함되지 않으며, 하나의 다른 날짜로 표시됩니다.

는 한번 관련 질문을 한 적이 있는데, 이것이 좀 더 명확하게 하는 것일지도 모른다.

이 답변은 @geminiousgoel 및 @charlietfl 답변과 동일합니다.

시나리오:

날짜 전송 위치UI안으로API call로서epoch time(UNIX 시간) 대신date스트링getTime() 메서드를 사용하여 날짜를 에폭 시간으로 변환할 수 있습니다.

var dateStr = "Tue Apr 04 2017 00:00:00 GMT+0530";

var dateEpoch = new Date(dateStr).getTime();

console.log(dateEpoch); // 1491244200000 (Local Time)

수신측에서는, 이것을 변환할 필요가 있습니다.epoch time(UNIX 시간)에Date여기서도 같은 로컬 날짜\time이 표시됩니다.UI.

샘플 스크린샷 여기에 이미지 설명 입력

charlietfl이 제안했듯이 글로벌 해킹은 Date.protype보다 우선합니다.toJSON() 메서드는 권장되지 않습니다.

$http를 어디에 사용하세요?포스트콜?$http 요청을 제출하는 가장 좋은 장소는 서비스 내입니다.서비스를 사용하는 경우 퍼블릭 서비스 API를 enwrap하여 "public" 및 "private" 메서드를 사용할 것을 권장합니다.데이터 변환, 검증 등의 일반적인 작업을 수행하기 위한 유틸리티가 될 수 있습니다.

angular.service('bookStoreService', ['$http'], function($http) {
    var normalizeBooks = function(booksArray){
        booksArray.forEach(function(book){  
            // do something on the book
        });
    };

    var updateBooks = function(books){
       normalizeBooks(books);
       $http.post('myurl', books);
    };

    return {
       updateBooks : updateBooks
    };
});

UTC 날짜를 서버에 전달하는 것은 바람직한 동작입니다.클라이언트 API는 날짜를 모두 로컬 날짜로 가정하지 않고 UTC 시간을 처리합니다.

다만, 로컬 타임 존에 근거해 날짜를 문자열로 변환해, 서버에 문자열을 건네줄 수 있습니다.

필요한 포맷으로 문자열로 전달(사용하시는 API가 문자열을 받아들이는 경우)하면 된다고 생각합니다만, 「Tue Apr 4 2017 00:00:00 GMT+0530」이라고 하고, 백엔드에 문자열로 보존해 두면, 취득시에 문자열이 되어, 어떠한 변경도 없습니다.

진달사브, 이렇게 될 거야.달력 선택기를 사용하여 임의의 날짜를 선택하거나 임의의 값을 전달하면 원래 로컬 날짜가 걸리지만 이 값을 전달하면 UTC로 변환됩니다.그 후 수신측에서 다시 로컬존으로 변환해야 합니다.데이터베이스는 날짜 시간을 UTC 형식으로 저장합니다.

angular-locale_en-in.js 라이브러리를 앱에 추가했습니까?이런 거...

angular.module('myAngularApp', [
    'ngLocale'])

그렇지 않으면 js 라이브러리가 각도 적용에 영향을 미치지 않습니다.

마지막에 UTC를 추가하여 브라우저가 UTC 날짜로 변환합니다.

var dateToServer =new Date(dateFromUser+" UTC"); 이제 dateToServer는 UTC DateTime 형식이 됩니다.

문자열에서 Json 시리얼라이저 구문 분석 날짜입니다.클라이언트에서는 날짜 속성이 브라우저 표준 시간대에 로컬 날짜로 저장됩니다.개체를 서버에 게시할 때 모든 날짜 속성이 utc 문자열로 변환됩니다.대부분의 경우 그것은 적절한 처사이다.그러나 서버 표준 시간대로 날짜를 설정하고 전송해야 할 수도 있습니다.화이트아웃 시간만 설정해야 하는 경우가 많습니다.이 경우 문자열 속성을 정의하고 수동으로 설정해야 합니다.나는 보통 이 트릭을 적용한다.

class Obj{
 d: Date
}

class ObjDto{
 constructor(obj: Obj){
   this.d= dateTimeToIsoLocalDateString(obj.d)
 }
 d: string
}

...

export function DateTimeToDate(date) {
    return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
}

export function dateTimeToIsoLocalDateString(dateTime: Date): string {
    if (dateTime === null) {
        return null;
    }
    let date = DateTimeToDate(dateTime);
    let res = date.toISOString().replace("Z", "");
    return res;
}

이 주제에 대한 자세한 내용은 이 항목을 참조하십시오.

//in res data of rest service in x the value is date in y value of y-axis     
     for (const i in res) {
        console.log(i);
        const a = {x: new Date(this.mimikatzlog[i].x), y: this.mimikatzlog[i].y};
        this.policies.push(a);

언급URL : https://stackoverflow.com/questions/43496920/angular-http-post-changing-date-to-utc-date

반응형