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?

16voto

Marzieh Mousavi Punkte 391

Wenn Sie 2021-12-28T18:00:45.959Z Format können Sie dies in js verwenden:

// myDateTime is 2021-12-28T18:00:45.959Z

myDate = new Date(myDateTime).toLocaleDateString('en-US');
// myDate is 12/28/2021

myTime = new Date(myDateTime).toLocaleTimeString('en-US');
// myTime is 9:30:45 PM

Sie müssen nur Ihre Gebietsbezeichnung anstelle von "en-US" eingeben (z. B. "fa-IR").


Sie können auch die Optionen für toLocaleTimeString like { Stunde: '2-stellig', Minute: '2-stellig' }

myTime = new Date(myDateTime).toLocaleTimeString('en-US',{ hour: '2-digit', minute: '2-digit' });
// myTime is 09:30 PM

mehr Informationen für toLocaleTimeString y toLocaleDateString

13voto

Verwenden Sie dies für UTC und Ortszeit umrechnen und umgekehrt .

//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;
}

12voto

MaurGi Punkte 1431

In Matts Antwort fehlt die Tatsache, dass die Sommerzeit zwischen Date() und der zu konvertierenden Datumszeit unterschiedlich sein kann - hier ist meine Lösung:

    function ConvertUTCTimeToLocalTime(UTCDateString)
    {
        var convertdLocalTime = new Date(UTCDateString);

        var hourOffset = convertdLocalTime.getTimezoneOffset() / 60;

        convertdLocalTime.setHours( convertdLocalTime.getHours() + hourOffset ); 

        return convertdLocalTime;
    }

Und die Ergebnisse im Debugger:

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

10voto

adnan kamili Punkte 8249

Falls es Sie nicht stört, wenn Sie moment.js und Ihre Zeit in UTC ist, verwenden Sie einfach Folgendes:

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

Wenn Ihre Zeit nicht in UTC, sondern in einem anderen Ihnen bekannten Gebietsschema angegeben ist, dann verwenden Sie Folgendes:

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

Wenn Ihre Zeit bereits in der Ortszeit angegeben ist, dann verwenden Sie Folgendes:

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

6voto

TLVF2627 Punkte 87

So gehe ich vor, um UTC in meine Ortszeit umzurechnen:

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

document.getElementById("dataDate").innerHTML = dataDate; 
document.getElementById("myLocalDate").innerHTML = myLocalDate; 

<p>UTC<p>
<p id="dataDate"></p>

<p>Local(GMT +7)<p>
<p id="myLocalDate"></p>

Ergebnis: Tue Sep 15 2020 14:08:00 GMT+0700 (Indochina-Zeit).

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