547 Stimmen

UTC-Datumszeit in lokale Datumszeit umrechnen

Vom Server erhalte ich eine Datetime-Variable in diesem Format: 6/29/2011 4:52:48 PM und es ist in UTC-Zeit. Ich möchte sie mit JavaScript in die Zeitzone des Browsers des aktuellen Benutzers umwandeln.

Wie lässt sich dies mit JavaScript oder jQuery bewerkstelligen?

3voto

Joe Punkte 2982

@Adorojan's Die Antwort ist fast richtig. Aber die Addition des Offsets ist nicht korrekt, da der Offset-Wert negativ ist, wenn das Browser-Datum vor der GMT-Zeit liegt und vice versa. Unten ist die Lösung, die ich kam mit und funktioniert perfekt für mich:

// Input time in UTC
var inputInUtc = "6/29/2011 4:52:48";

var dateInUtc = new Date(Date.parse(inputInUtc+" UTC"));
//Print date in UTC time
document.write("Date in UTC : " + dateInUtc.toISOString()+"<br>");

var dateInLocalTz = convertUtcToLocalTz(dateInUtc);
//Print date in local time
document.write("Date in Local : " + dateInLocalTz.toISOString());

function convertUtcToLocalTz(dateInUtc) {
        //Convert to local timezone
        return new Date(dateInUtc.getTime() - dateInUtc.getTimezoneOffset()*60*1000);
}

3voto

Nisarg Desai Punkte 331

Ich antworte auf diese Frage, wenn jemand eine Funktion haben möchte, die die umgewandelte Zeit für ein bestimmtes id-Element anzeigt und das Datumsformat string yyyy-mm-dd anwendet. hier date1 ist string und ids ist id des Elements, dass die Zeit gehen, um anzuzeigen.

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

Ich weiß, dass die Antwort bereits akzeptiert wurde, aber ich bin durch Google hierher gekommen und ich habe eine Lösung gefunden, indem ich mich von der akzeptierten Antwort inspirieren ließ, also wollte ich sie einfach teilen, falls jemand sie braucht.

2voto

ToniG Punkte 61

Verwendung der dayjs-Bibliothek:

(new Date()).toISOString();  // returns 2021-03-26T09:58:57.156Z  (GMT time)

dayjs().format('YYYY-MM-DD HH:mm:ss,SSS');  // returns 2021-03-26 10:58:57,156  (local time)

(in Nodejs müssen Sie das tun, bevor Sie es verwenden: const dayjs = require('dayjs'); in anderen Umgebungen, siehe dayjs-Dokumentation).

1voto

AConsumer Punkte 1891

Sie können verwenden momentjs , moment(date).format() wird immer das Ergebnis lokales Datum .

Bonus können Sie auf jede beliebige Weise formatieren. Zum Beispiel.

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"); 

Weitere Einzelheiten finden Sie unter Moment js Website

1voto

Moriz Punkte 11

Basierend auf @digitalbath Antwort, hier ist eine kleine Funktion, um die UTC-Zeitstempel zu greifen und die lokale Zeit in einem bestimmten DOM-Element (mit jQuery für diesen letzten Teil) anzuzeigen:

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>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X