복붙노트

[JQUERY] 현지 날짜 시간에 UTC 날짜 시간 변환

JQUERY

현지 날짜 시간에 UTC 날짜 시간 변환

해결법


  1. 1.자바 스크립트의 날짜로 변환하기 전에 문자열에 추가 'UTC'

    자바 스크립트의 날짜로 변환하기 전에 문자열에 추가 'UTC'

    var date = new Date('6/29/2011 4:52:48 PM UTC');
    date.toString() // "Wed Jun 29 2011 09:52:48 GMT-0700 (PDT)"
    

  2. 2.서버보기 내 관점에서 항상 일반적인 경우의 표준화 ISO 8601-형식의 날짜를 반환해야합니다.

    서버보기 내 관점에서 항상 일반적인 경우의 표준화 ISO 8601-형식의 날짜를 반환해야합니다.

    더 많은 정보를 원하시면 여기 :

    JS Date 객체에 직접 공급 것 ': 52 48.000Z 2011-06-29T16을'이 경우 서버는 반환합니다.

    var utcDate = '2011-06-29T16:52:48.000Z';  // ISO-8601 formatted date returned from server
    var localDate = new Date(utcDate);
    

    LOCALDATE 내 경우 2 시간 후에 (DK 시간)이 될 것입니다 올바른 현지 시간에있을 것입니다.

    당신은 정말 한 서버에서 기대하는 어떤 형식과 일치로, 모두에게 단지 물건을 복잡하게이 구문 분석 할 필요가 없습니다.


  3. 3.이것은 보편적 인 솔루션입니다 :

    이것은 보편적 인 솔루션입니다 :

    function convertUTCDateToLocalDate(date) {
        var newDate = new Date(date.getTime()+date.getTimezoneOffset()*60*1000);
    
        var offset = date.getTimezoneOffset() / 60;
        var hours = date.getHours();
    
        newDate.setHours(hours - offset);
    
        return newDate;   
    }
    

    용법:

    var date = convertUTCDateToLocalDate(new Date(date_string_you_received));
    

    클라이언트 지역 설정에 따라 날짜를 표시합니다 :

    date.toLocaleString();
    

  4. 4.당신은 (UTC)가 클라이언트 (분) 오프셋 얻어야한다 :

    당신은 (UTC)가 클라이언트 (분) 오프셋 얻어야한다 :

    var offset = new Date().getTimezoneOffset();
    

    그리고 서버에서 얻을 시간에 추가하거나 빼기 특파원을한다.

    도움이 되었기를 바랍니다.


  5. 5.나를 위해 솔루션은 작동하지 않았다 위.

    나를 위해 솔루션은 작동하지 않았다 위.

    IE와 지역에 UTC 날짜 - 시간 변환이 조금 까다 롭습니다. '26.007 : 37 2018-02-15T05'그리고 내가 자바 스크립트 코드 아래 사용하므로 지역 시간대에 따라 변환 싶어 나를 위해, 웹 API에서 날짜 - 시간입니다.

    var createdDateTime = new Date('2018-02-15T05:37:26.007' + 'Z');
    

  6. 6.이것은 나를 위해 작동합니다 :

    이것은 나를 위해 작동합니다 :

    function convertUTCDateToLocalDate(date) {
        var newDate = new Date(date.getTime() - date.getTimezoneOffset()*60*1000);
        return newDate;   
    }
    

  7. 7.당신의 머리에서이 기능을 넣어 :

    당신의 머리에서이 기능을 넣어 :

    <script type="text/javascript">
    function localize(t)
    {
      var d=new Date(t+" UTC");
      document.write(d.toString());
    }
    </script>
    

    그런 다음 페이지의 본문에서 각 날짜에 대해 다음을 생성합니다 :

    <script type="text/javascript">localize("6/29/2011 4:52:48 PM");</script>
    

    그리니치 표준시 및 시간대를 제거하려면 다음 줄을 변경 :

    document.write(d.toString().replace(/GMT.*/g,""));
    

  8. 8.좋은 결과없이 여기에 게시 몇 가지 다른 시도 후이 나를 위해 일 듯 :

    좋은 결과없이 여기에 게시 몇 가지 다른 시도 후이 나를 위해 일 듯 :

    convertUTCDateToLocalDate: function (date) {
        return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(),  date.getHours(), date.getMinutes(), date.getSeconds()));
    }
    

    그리고이 지역 날짜 UTC에 반대의 길을 갈하기 위해 노력 :

    convertLocalDatetoUTCDate: function(date){
        return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(),  date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());
    }
    

  9. 9.이 경우 'UTC'에, 마지막에 시간대를 추가 :

    이 경우 'UTC'에, 마지막에 시간대를 추가 :

    theDate = new Date( Date.parse('6/29/2011 4:52:48 PM UTC'));
    

    그 후, 올바른 로케일에서 날짜를 표시 toLocale () * 함수 패밀리를 사용

    theDate.toLocaleString();  // "6/29/2011, 9:52:48 AM"
    theDate.toLocaleTimeString();  // "9:52:48 AM"
    theDate.toLocaleDateString();  // "6/29/2011"
    

  10. 10.매트의 대답은 일광 절약 시간 날짜 ()하고 변환 할 필요가있는 날짜 시간과 다를 수 있다는 사실이 없습니다 - 여기 나의 솔루션입니다 :

    매트의 대답은 일광 절약 시간 날짜 ()하고 변환 할 필요가있는 날짜 시간과 다를 수 있다는 사실이 없습니다 - 여기 나의 솔루션입니다 :

        function ConvertUTCTimeToLocalTime(UTCDateString)
        {
            var convertdLocalTime = new Date(UTCDateString);
    
            var hourOffset = convertdLocalTime.getTimezoneOffset() / 60;
    
            convertdLocalTime.setHours( convertdLocalTime.getHours() + hourOffset ); 
    
            return convertdLocalTime;
        }
    

    그리고 디버거의 결과는 :

    UTCDateString: "2014-02-26T00:00:00"
    convertdLocalTime: Wed Feb 26 2014 00:00:00 GMT-0800 (Pacific Standard Time)
    

  11. 11.

    //Covert datetime by GMT offset 
    //If toUTC is true then return UTC time other wise return local time
    function convertLocalDateToUTCDate(date, toUTC) {
        date = new Date(date);
        //Local time converted to UTC
        console.log("Time: " + date);
        var localOffset = date.getTimezoneOffset() * 60000;
        var localTime = date.getTime();
        if (toUTC) {
            date = localTime + localOffset;
        } else {
            date = localTime - localOffset;
        }
        date = new Date(date);
        console.log("Converted time: " + date);
        return date;
    }
    

  12. 12.이 Adorjan Princ's 답변에 따라 단순화 된 솔루션입니다 :

    이 Adorjan Princ's 답변에 따라 단순화 된 솔루션입니다 :

    function convertUTCDateToLocalDate(date) {
        var newDate = new Date(date);
        newDate.setMinutes(date.getMinutes() - date.getTimezoneOffset());
        return newDate;
    }
    

    용법:

    var date = convertUTCDateToLocalDate(new Date(date_string_you_received));
    

  13. 13.혹시 usingmoment.js 신경 쓰지 않고 시간은 UTC 그냥 다음을 사용하고 있습니다 :

    혹시 usingmoment.js 신경 쓰지 않고 시간은 UTC 그냥 다음을 사용하고 있습니다 :

    moment.utc('6/29/2011 4:52:48 PM').toDate();
    

    당신의 시간은 UTC하지만 당신에게 알려진 다른 로케일에없는 경우, 다음 다음을 사용 :

    moment('6/29/2011 4:52:48 PM', 'MM-DD-YYYY', 'fr').toDate();
    

    당신의 시간은 지역에 이미 있다면, 다음을 사용 :

    moment('6/29/2011 4:52:48 PM', 'MM-DD-YYYY');
    

  14. 14.나에게 가장 간단한 사용 듯

    나에게 가장 간단한 사용 듯

    datetime.setUTCHours(datetime.getHours());
    datetime.setUTCMinutes(datetime.getMinutes());
    

    (내가 첫 번째 줄이 충분 수 있다고 생각하지만, 시간의 분수에 떨어져있는 시간대가 있습니다)


  15. 15.YYYY-MM-DD hh가 사용 : mm : ss 형식으로 :

    YYYY-MM-DD hh가 사용 : mm : ss 형식으로 :

    var date = new Date('2011-06-29T16:52:48+00:00');
    date.toString() // "Wed Jun 29 2011 09:52:48 GMT-0700 (PDT)"
    

    mm : 다음 YYYY-MM-DD의 HH로 변환 SS 형식, 반드시 당신의 날짜는 ISO 8601 형식을 따라야합니다.

    Year: 
        YYYY (eg 1997)    
    Year and month: 
        YYYY-MM (eg 1997-07)
    Complete date: 
        YYYY-MM-DD (eg 1997-07-16)
    Complete date plus hours and minutes:
        YYYY-MM-DDThh:mmTZD (eg 1997-07-16T19:20+01:00)    
    Complete date plus   hours, minutes and seconds:
        YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00)    
    Complete date plus hours, minutes, seconds and a decimal fraction of a second
        YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45+01:00) where:
    
    YYYY = four-digit year
    MM   = two-digit month (01=January, etc.)
    DD   = two-digit day of month (01 through 31)
    hh   = two digits of hour (00 through 23) (am/pm NOT allowed)
    mm   = two digits of minute (00 through 59)
    ss   = two digits of second (00 through 59)
    s    = one or more digits representing a decimal fraction of a second
    TZD  = time zone designator (Z or +hh:mm or -hh:mm)
    

    참고로 중요 사항


  16. 16.(C #으로 직렬화)을 JSON 날짜 문자열은 ": 58 : 17 2015-10-13T18"처럼 보인다.

    (C #으로 직렬화)을 JSON 날짜 문자열은 ": 58 : 17 2015-10-13T18"처럼 보인다.

    각도에서 (Hulvej 다음)은 LOCALDATE 필터를 만들 :

    myFilters.filter('localdate', function () {
        return function(input) {
            var date = new Date(input + '.000Z');
            return date;
        };
    })
    

    그런 다음, 같은 지역 시간을 표시 :

    {{order.createDate | localdate | date : 'MMM d, y h:mm a' }}
    

  17. 17.나는이 응답하면 디스플레이가 특정 아이디 요소에 시간을 변환 날짜 포맷 스트링 YYYY-MM-DD를 적용하는 것이 어느 하나 개 찾는 기능 여기 날짜 1은 문자열이고 ID는 시간이 디스플레이에가는 것을 요소의 ID입니다.

    나는이 응답하면 디스플레이가 특정 아이디 요소에 시간을 변환 날짜 포맷 스트링 YYYY-MM-DD를 적용하는 것이 어느 하나 개 찾는 기능 여기 날짜 1은 문자열이고 ID는 시간이 디스플레이에가는 것을 요소의 ID입니다.

    function convertUTCDateToLocalDate(date1, ids) 
    {
      var newDate = new Date();
      var ary = date1.split(" ");
      var ary2 = ary[0].split("-");
      var ary1 = ary[1].split(":");
      var month_short = Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
      newDate.setUTCHours(parseInt(ary1[0]));
      newDate.setUTCMinutes(ary1[1]);
      newDate.setUTCSeconds(ary1[2]);
      newDate.setUTCFullYear(ary2[0]);
      newDate.setUTCMonth(ary2[1]);
      newDate.setUTCDate(ary2[2]);
      ids = document.getElementById(ids);
      ids.innerHTML = " " + newDate.getDate() + "-" + month_short[newDate.getMonth() - 1] + "-" + newDate.getFullYear() + " " + newDate.getHours() + ":" + newDate.getMinutes() + ":" + newDate.getSeconds();
                }
    

    나는 그 대답은 이미 접수 된 알고하지만 난 구글의 원인이 여기에 도착하고 나는 그것을 만약 누군가가 필요 그냥 공유하고자했다 그래서 내가 허용 대답에서 영감을 받고으로 해결했다.


  18. 18.@ Adorojan의 대답은 거의 정확합니다. 그러나 오프셋의 추가는 브라우저 날짜 앞서 GMT와 그 반대의 경우 오프셋 값이 음수가 될 것이기 때문에 정확하지 않습니다. 아래는 내가 함께 와서 나를 위해 잘 완벽하게 작동하는 솔루션입니다 :

    @ Adorojan의 대답은 거의 정확합니다. 그러나 오프셋의 추가는 브라우저 날짜 앞서 GMT와 그 반대의 경우 오프셋 값이 음수가 될 것이기 때문에 정확하지 않습니다. 아래는 내가 함께 와서 나를 위해 잘 완벽하게 작동하는 솔루션입니다 :

    UTC에서 // 입력 시간 VAR inputInUtc는 "2011년 6월 29일 4시 52분 48초"=; VAR dateInUtc 새로운 날짜 (다음 Date.parse (inputInUtc + "UTC를")) =; UTC 시간 // 인쇄 일 document.write를 ( "UTC의 날짜 :"+ dateInUtc.toISOString () + "로
    "); VAR dateInLocalTz = convertUtcToLocalTz (dateInUtc); 현지 시간 // 인쇄 일 document.write를 ( "로컬 날짜 :"+ dateInLocalTz.toISOString ()); 함수 convertUtcToLocalTz (dateInUtc) { // 현지 시간대로 변환 (dateInUtc.getTime를 () - dateInUtc.getTimezoneOffset () * 60 * 1000) 새로운 날짜를 반환; }


  19. 19.나를 위해,이 잘 작동

    나를 위해,이 잘 작동

    if (typeof date === "number") {
      time = new Date(date).toLocaleString();
      } else if (typeof date === "string"){
      time = new Date(`${date} UTC`).toLocaleString();
    }
    

  20. 20.@digitalbath 응답에 기초하여, 여기에 소정의 DOM 요소 (이 마지막 부분 jQuery를 사용)의 로컬 시간을 UTC 타임 스탬프를 잡고 작은 표시 함수이다 :

    @digitalbath 응답에 기초하여, 여기에 소정의 DOM 요소 (이 마지막 부분 jQuery를 사용)의 로컬 시간을 UTC 타임 스탬프를 잡고 작은 표시 함수이다 :

    https://jsfiddle.net/moriz/6ktb4sv8/1/

    <div id="eventTimestamp" class="timeStamp">
       </div>
       <script type="text/javascript">
       // Convert UTC timestamp to local time and display in specified DOM element
       function convertAndDisplayUTCtime(date,hour,minutes,elementID) {
        var eventDate = new Date(''+date+' '+hour+':'+minutes+':00 UTC');
        eventDate.toString();
        $('#'+elementID).html(eventDate);
       }
       convertAndDisplayUTCtime('06/03/2015',16,32,'eventTimestamp');
       </script>
    

  21. 21.이 사파리 / 크롬 / 파이어 폭스와 나를 위해 잘 작동 :

    이 사파리 / 크롬 / 파이어 폭스와 나를 위해 잘 작동 :

    const localDate = new Date(`${utcDate.replace(/-/g, '/')} UTC`);
    

  22. 22.I : S (PHP는 날짜 함수와 같은) 형식 나는 UTC의 신기원 및 변환 그것을 클라이언트 시스템의 시간대 및 D / M / Y H 수익률을 소요 좋은 작은 스크립트를 썼다 :

    I : S (PHP는 날짜 함수와 같은) 형식 나는 UTC의 신기원 및 변환 그것을 클라이언트 시스템의 시간대 및 D / M / Y H 수익률을 소요 좋은 작은 스크립트를 썼다 :

    getTimezoneDate = function ( e ) {
    
        function p(s) { return (s < 10) ? '0' + s : s; }        
    
        var t = new Date(0);
        t.setUTCSeconds(e);
    
        var d = p(t.getDate()), 
            m = p(t.getMonth()+1), 
            Y = p(t.getFullYear()),
            H = p(t.getHours()), 
            i = p(t.getMinutes()), 
            s = p(t.getSeconds());
    
        d =  [d, m, Y].join('/') + ' ' + [H, i, s].join(':');
    
        return d;
    
    };
    

  23. 23.당신은 momentjs을 사용할 수 있습니다, 순간 (날짜) .format ()는 항상 현지 날짜에 결과를 제공 할 것입니다.

    당신은 momentjs을 사용할 수 있습니다, 순간 (날짜) .format ()는 항상 현지 날짜에 결과를 제공 할 것입니다.

    보너스, 당신은 당신이 원하는 어떤 방식으로 포맷 할 수 있습니다. 의 경우는 예를 들면.

    moment().format('MMMM Do YYYY, h:mm:ss a'); // September 14th 2018, 12:51:03 pm
    moment().format('dddd');                    // Friday
    moment().format("MMM Do YY"); 
    

    자세한 내용은 당신은 순간의 js 웹 사이트를 참조 할 수 있습니다


  24. 24.나는 현지 시간으로 모든 시간대로 변환 한 기능을 만들었습니다.

    나는 현지 시간으로 모든 시간대로 변환 한 기능을 만들었습니다.

    그것은 적절한 오프셋 값을 반환하지 않기 때문에 나는,에, getTimezoneOffset ()를 사용하지 않았다

    요구 사항 :

    1. npm i moment-timezone
    
    function utcToLocal(utcdateTime, tz) {
        var zone = moment.tz(tz).format("Z") // Actual zone value e:g +5:30
        var zoneValue = zone.replace(/[^0-9: ]/g, "") // Zone value without + - chars
        var operator = zone && zone.split("") && zone.split("")[0] === "-" ? "-" : "+" // operator for addition subtraction
        var localDateTime
        var hours = zoneValue.split(":")[0]
        var minutes = zoneValue.split(":")[1]
        if (operator === "-") {
            localDateTime = moment(utcdateTime).subtract(hours, "hours").subtract(minutes, "minutes").format("YYYY-MM-DD HH:mm:ss")
        } else if (operator) {
            localDateTime = moment(utcdateTime).add(hours, "hours").add(minutes, "minutes").format("YYYY-MM-DD HH:mm:ss")
        } else {
            localDateTime = "Invalid Timezone Operator"
        }
        return localDateTime
    }
    
    utcToLocal("2019-11-14 07:15:37", "Asia/Kolkata")
    
    //Returns "2019-11-14 12:45:37"
    

  25. 25.내 경우, 나는 초 날짜의 차이를 발견했다. 나는 현지 날짜 객체로 변환 할 수 있도록 날짜는 UTC 날짜 문자열했다. 이것은 내가 한 것입니다 :

    내 경우, 나는 초 날짜의 차이를 발견했다. 나는 현지 날짜 객체로 변환 할 수 있도록 날짜는 UTC 날짜 문자열했다. 이것은 내가 한 것입니다 :

    let utc1 = new Date();
    let utc2 = null;
    const dateForCompare = new Date(valueFromServer);
    dateForCompare.setTime(dateForCompare.getTime() - dateForCompare.getTimezoneOffset() * 
     60000);
    utc2 = dateForCompare;
    
    const seconds = Math.floor(utc1 - utc2) / 1000;
    

  26. 26.이것은 내가 내 현지 시간으로 UTC로 변환하고 있어요 것입니다 :

    이것은 내가 내 현지 시간으로 UTC로 변환하고 있어요 것입니다 :

    dataDate = '2020-09-15 07:08:08'
    utcDate = new Date(a);
    myLocalDate = new Date(Date.UTC(
       utcDate.getFullYear(),
       utcDate.getMonth(),
       utcDate.getDate(),
       utcDate.getHours(),
       utcDate.getMinutes()
    ));
    

    결과 : 화 2020년 9월 15일 14시 08분 0초 (그리니치 표준시) + 0700 (인도 차이나 시간).


  27. 27.

    function getUTC(str) {
        var arr = str.split(/[- :]/);
        var utc = new Date(arr[0], arr[1]-1, arr[2], arr[3], arr[4], arr[5]);
        utc.setTime(utc.getTime() - utc.getTimezoneOffset()*60*1000)
        return utc;
    }
    

    방문 다른 사람을 위해 - UTC의 문자열에서 로컬 날짜 객체를 얻기 위해이 기능을 사용, DST의주의를 기울여야 등 IE, 아이폰에서 작동합니다

    우리는 (JS 날짜 구문 분석이 일부 브라우저에서 지원되지 않기 때문에) 문자열을 분할 우리는 UTC에서 차이를 가져 우리에게 현지 시간을주는 UTC 시간에서를 뺍니다. 이 변수 "UTC"에서 그 시간 다시 설정됩니다 있도록 반환 오프셋 때문에 DST으로 계산하고, (만약 내가 잘못 정정 해줘). 마지막으로 날짜 오브젝트를 돌려줍니다.


  28. 28.에서 각도 벤의 대답이 방법을 사용 :

    에서 각도 벤의 대답이 방법을 사용 :

    $scope.convert = function (thedate) {
        var tempstr = thedate.toString();
        var newstr = tempstr.toString().replace(/GMT.*/g, "");
        newstr = newstr + " UTC";
        return new Date(newstr);
    };
    

    편집 : 날짜 필터 각도 1.3.0 추가 UTC 지원, 나는 아직 그것을 사용하지 않은 있지만 쉽게해야합니다, 여기에 형식은 다음과 같습니다

    {{ date_expression | date : format : timezone}}
    

    각도 1.4.3 날짜 API


  29. 29.당신은 moment.js 파일을 사용하여 수행 할 수 있습니다.

    당신은 moment.js 파일을 사용하여 수행 할 수 있습니다.

    당신은 그것의 단순한 그냥 시간대의 장소를 언급.

    예 : 아시아 / 콜카타 시간대에 날짜를 변환 할 경우, 당신은 단지 moment.js에서 얻은 시간대 장소의 이름을 언급해야

    VAR UTCDateTime는 = "당신의 날짜는 UTC로부터 얻은"; VAR ISTleadTime = (moment.tz (UTCDateTime, "아프리카 / 아비 장")) TZ ( "아시아 / 콜카타") 형식 ( 'YYYY-MM-DD LT')..;

  30. from https://stackoverflow.com/questions/6525538/convert-utc-date-time-to-local-date-time by cc-by-sa and MIT license