Convert UTC date time to local date time

前端 未结 30 1181
悲哀的现实
悲哀的现实 2020-11-22 01:09

From the server I get a datetime variable in this format: 6/29/2011 4:52:48 PM and it is in UTC time. I want to convert it to the current user’s browser time us

相关标签:
30条回答
  • 2020-11-22 01:30

    I Answering This If Any one want function that display converted time to specific id element and apply date format string yyyy-mm-dd here date1 is string and ids is id of element that time going to display.

    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();
                }
    

    i know that answer has been already accepted but i get here cause of google and i did solve with getting inspiration from accepted answer so i did want to just share it if someone need.

    0 讨论(0)
  • 2020-11-22 01:30

    Based on @digitalbath answer, here is a small function to grab the UTC timestamp and display the local time in a given DOM element (using jQuery for this last part):

    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>
    
    0 讨论(0)
  • 2020-11-22 01:30

    this worked well for me with safari/chrome/firefox :

    const localDate = new Date(`${utcDate.replace(/-/g, '/')} UTC`);
    
    0 讨论(0)
  • 2020-11-22 01:30

    In my case, I had to find the difference of dates in seconds. The date was a UTC date string, so I converted it to a local date object. This is what I did:

    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;
    
    0 讨论(0)
  • 2020-11-22 01:31

    You should get the (UTC) offset (in minutes) of the client:

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

    And then do the correspondent adding or substraction to the time you get from the server.

    Hope this helps.

    0 讨论(0)
  • 2020-11-22 01:31

    After trying a few others posted here without good results, this seemed to work for me:

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

    And this works to go the opposite way, from Local Date to UTC:

    convertLocalDatetoUTCDate: function(date){
        return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(),  date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());
    }
    
    0 讨论(0)
提交回复
热议问题