514 Stimmen

Datum in eine andere Zeitzone in JavaScript konvertieren

Ich bin auf der Suche nach einer Funktion, mit der ich das Datum einer Zeitzone in eine andere umwandeln kann.

Es werden zwei Parameter benötigt,

  • Datum (im Format "2012/04/10 10:10:30 +0000")
  • Zeitzone string ("Asien/Jakarta")

Die Zeitzonenzeichenfolge wird beschrieben in http://en.wikipedia.org/wiki/Zone.tab

Gibt es eine einfache Möglichkeit, dies zu tun?

1voto

Sachin Dane Punkte 242
This is UTC date; converting UTC to IST timezone;

let sampleArray = [
  {
    date: "2022-12-22T19:16:26.803"
  },
  {
    date: "2022-12-22T19:16:26.77"
  },
  {
    date: "2022-12-22T19:16:26.737"
  },
  {
    date: "2022-12-22T19:16:26.72"
  }
];

// Get all the results whose boolresult is 'true'
// solution 1
sampleArray.map((element) => {
  let utcDate = new Date(element.date).getTime();
  let dateIST = new Date(utcDate);
  dateIST.setHours(dateIST.getHours() + 5);
  dateIST.setMinutes(dateIST.getMinutes() + 30);
  element.date = dateIST;
});
console.log("Result ==>>", sampleArray);

// solution 2
sampleArray.map((element) => {
  element.date = new Date(element.date).toLocaleString("en-US", {
    timeZone: "Asia/Kolkata"
  });
});
console.log("Result 2==>>", sampleArray);

1voto

Rahul Mankar Punkte 800

Sie können dies auch für die Konvertierung von Datum Zeitzone in Indien versuchen:

var indianTimeZoneVal = new Date().toLocaleString('en-US', {timeZone: 'Asia/Kolkata'});
var indainDateObj = new Date(indianTimeZoneVal);
indainDateObj.setHours(indainDateObj.getHours() + 5);
indainDateObj.setMinutes(indainDateObj.getMinutes() + 30);
console.log(indainDateObj);

1voto

Mili Dubey Punkte 148

Sie können verwenden Intl.DateTimeFormat die Zeitzone als Option angeben und das Datum oder die Uhrzeit wird in die gewünschte Zeitzone umgerechnet.

let timezone = "Asia/Jakarta";
let date = new Date("2012/04/10 10:10:30 +0000");
let formattedDate = new Intl.DateTimeFormat("en-US", { dateStyle: "long" , timeStyle: "short",  timeZone: timezone}).format(date);

1voto

mhdi Punkte 168

Geben Sie die gewünschte Zeitzone an, z. B. "Asien/Teheran", um die aktuelle Zeit auf diese Zeitzone umzustellen. Ich habe "Asien/Seoul" verwendet.

Sie können die folgenden Codes verwenden. Ändern Sie bei Bedarf den Stil.

Bitte denken Sie daran, dass Sie "function kcwcheckT(i)" entfernen müssen, wenn Sie das Format h:m:s anstelle von HH:MM:SS verwenden möchten.

function kcwcheckT(i) {
  if (i < 10) {
    i = "0" + i;
  }
  return i;
}
function kcwt() {
var d = new Date().toLocaleString("en-US", {timeZone: "Asia/Seoul"});
d = new Date(d);
  var h = d.getHours();
  var m = d.getMinutes();
  var s = d.getSeconds();
  h = kcwcheckT(h);
  m = kcwcheckT(m);
  s = kcwcheckT(s);
  document.getElementById("kcwcurtime").innerHTML = h + ":" + m + ":" + s;
  var days = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
document.getElementById("kcwcurday").innerHTML = days[d.getDay()]
}
kcwt();
window.setInterval(kcwt, 1000);

@import url('https://fonts.googleapis.com/css2?family=Nunito&display=swap');

.kcwsource {color:#040505;cursor: pointer;display:block;width: 100%;border: none;border-radius:5px;text-align:center;padding: 5px 10px 5px 10px;}
.kcwsource p {font-family: 'Nunito', sans-serif;}

.CurTbx {color:#040505;cursor: pointer;display:block;width: 100%;border: none;border-radius:5px;text-align:center;padding: 5px 10px 5px 10px;}
.kcwcstyle {font-family: 'Nunito', sans-serif; font-size: 22px;display: inline-block;}
.kcwcurstinf {font-family: 'Nunito', sans-serif; font-size: 18px;display: inline-block;margin: 0;}
.kcwcurday {margin: 0;}
.kcwcurst {margin: 0 10px 0 5px;}

/*Using the css below you can make your style responsive!*/

@media (max-width: 600px){
  .kcwcstyle {font-size: 14px;}
  .kcwcurstinf {font-size: 12px;}
}

<div class="kcwsource"><p>This Pen was originally developed for <a href="http://kocowafa.com" target="_blank">KOCOWAFA.com</a></p></div>
<div class="CurTbx"><p class="kcwcurst kcwcstyle" id="kcwcurday"></p><p class="kcwcurst kcwcstyle" id="kcwcurtime"></p><p class="kcwcurstinf">(Seoul, Korea)</p></div>

1voto

omarjebari Punkte 3828

Nachdem ich mich ein wenig umgesehen habe, einschließlich der Links auf dieser Seite, fand ich diesen großartigen Artikel, der die Zeitzone verwendet:

https://www.webniraj.com/2016/11/23/javascript-using-moment-js-to-display-dates-times-in-users-timezone/

Um es zusammenzufassen:

Abfrage der Zeitzone des Benutzers

var tz = moment.tz.guess();
console.info('Timezone: ' + tz);

Rückgabe z.B.: Zeitzone: Europa/London

Festlegen der Standardzeitzone für Benutzer

moment.tz.setDefault(tz);

Benutzerdefinierte Zeitzone einstellen

moment.tz.setDefault('America/Los_Angeles');

Datum/Uhrzeit in die lokale Zeitzone umrechnen, vorausgesetzt, das ursprüngliche Datum/die ursprüngliche Uhrzeit ist in UTC

moment.utc('2016-12-25 07:00').tz(tz).format('ddd, Do MMMM YYYY, h:mma');

Rückgabe: So, 25. Dezember 2016, 7:00 Uhr

Datum/Uhrzeit in LA-Zeit umrechnen

moment.utc('2016-12-25 07:00').tz('America/Los_Angeles').format('ddd, Do MMMM YYYY, h:mma');

Rückgabe: Sa, 24. Dezember 2016, 23:00 Uhr

Umrechnung von LA-Zeit in London

moment.tz('2016-12-25 07:00', 'America/Los_Angeles').tz('Europe/London').format( 'ddd, Do MMMM YYYY, h:mma' );

Rückgabe: So, 25. Dezember 2016, 15:00 Uhr

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