Webentwicklung

Konvertieren Sie Datum und Uhrzeit in die lokale Zeitzone – Javascript, PHP und MySQL

[ad_1]

In diesem Artikel erfahren Sie, wie Sie mithilfe von Javascript die UTC-Datumszeit in die lokale Zeitzone des Benutzers konvertieren.

Ihre Datenbank ist zentralisiert, aber die Ihrer Benutzer befinden sich an unterschiedlichen geografischen Standorten. Die in Ihrer Datenbank gespeicherte Zeit ist normalerweise standardmäßig UTC. Ihre Benutzer sollten jedoch die Uhrzeit entsprechend ihrer Zeitzone sehen. Wie willst du es also machen?

Inhaltsverzeichnis:

  1. Datum/Uhrzeit in UTC speichern
  2. Rufen Sie die lokale Zeitzone des Benutzers ab
  3. Konvertieren Sie UTC in eine Zeitzone

Datum/Uhrzeit in UTC speichern

Zuerst erstellen wir eine Benutzer Tisch. Führen Sie die folgende Abfrage in Ihrem phpMyAdmin aus.

CREATE TABLE IF NOT EXISTS users(
    id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
    name TEXT,
    created_at DATETIME
)

Dann fügen wir eine Zeile in diese Tabelle ein.

INSERT INTO users(name, created_at) VALUES ('Adnan', UTC_TIMESTAMP())

Beachten Sie, dass wir verwenden UTC_TIMESTAMP() Integrierte MySQL-Funktion. Dadurch werden das aktuelle UTC-Datum und die aktuelle UTC-Uhrzeit zurückgegeben.

Rufen Sie die lokale Zeitzone des Benutzers ab

Um die lokale Zeitzone des Benutzers zu erhalten, verwenden wir die International Objekt von Javascript. Es steht für Internationalisierung.

const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone

DateTimeFormat() erstellt ein neues DateTimeFormat-Objekt.

aufgelösteOptionen() gibt ein neues Objekt zurück. Die Eigenschaften seines Objekts spiegeln das Gebietsschema und das Datum/Uhrzeit-Format wider, die während der Initialisierung des Intl.DateTimeFormat()-Objekts festgelegt wurden.

Zeitzone gibt die Zeitzone des lokalen Computers des Benutzers zurück.

Wir haben es in einer Variablen gespeichert. Jetzt rufen wir eine AJAX-Anfrage auf, um die Datensätze mit PHP aus der Datenbank abzurufen.

const ajax = new XMLHttpRequest()
ajax.open("POST", "get-data.php", true)

ajax.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      console.log(this.responseText)
    }
}

const formData = new FormData()
formData.append("timeZone", timeZone)
ajax.send()

Dadurch wird eine AJAX-Anfrage aufgerufen und der Zeitzonenwert an die Anfrage angehängt.

Konvertieren Sie die UTC-Datumszeit in die lokale Zeitzone

Um den UTC-Wert aus der Datenbank in die lokale Zeitzone des Benutzers umzuwandeln, müssen wir zunächst den Wert der Zeitzone des Benutzers aus der AJAX-Anfrage abrufen. Erstellen Sie also eine Datei mit dem Namen get-data.php und stellt innerhalb dieser Datei eine Verbindung mit der MySQL-Datenbank her.

<?php

$conn = new PDO("mysql:host=localhost;dbname=your_db_name", "db_user", "db_password");

Dann erhalten wir die Zeitzone aus der AJAX-Anfrage und rufen den Datensatz des einzelnen Benutzers ab.

$timeZone = $_POST["timeZone"] ?? "";

date_default_timezone_set($timeZone);

$sql = "SELECT * FROM users";
$result = $conn->prepare($sql);
$result->execute([]);
$user = $result->fetchObject();

Abschließend konvertieren wir den Zeitstempel von UTC in die lokale Zeitzone des Benutzers und geben ihn an den Client zurück.

echo date("d M, Y h:i:s a", strtotime($user->created_at . " UTC"));

Wenn Sie die Konsolenregisterkarte Ihres Browsers öffnen, werden Datum und Uhrzeit angezeigt, jedoch in Ihrer eigenen Zeitzone.

Verwenden der DateTimeZone-Klasse

Berufung date_default_timezone_set() setzt die Zeitzone der gesamten Anfrage auf die Zeitzone des Benutzers. Wenn Sie nur den Wert einer Spalte in die lokale Zeitzone des Benutzers konvertieren möchten, können Sie die integrierte PHP-Funktion verwenden DateTimeZone Klasse.

Zuerst müssen Sie sein Objekt erstellen:

$dateTimeZone = new DateTimeZone($timeZone);

Anschließend können Sie aus dem in der MySQL-Datenbank gespeicherten Zeitstempel ein Datetime-Objekt erstellen und es so einstellen, dass es die Zeitzone des Benutzers verwendet.

$dateTime = new DateTime($user->created_at);
$dateTime->setTimezone($dateTimeZone);

Schließlich können wir Datum und Uhrzeit im Format anzeigen.

echo $dateTime->format("d M, Y h:i:s a");

Auf diese Weise können Sie mithilfe von Javascript die UTC-Datumszeit in die lokale Zeitzone des Benutzers konvertieren.


Beitragsaufrufe: 45

[ad_2]

Tags

Related Articles

Close
Immediate Momentumxnxx story sex meyzo.me haryana sex نيك بنت جامدة porn-arab.net احلى قصص نيك نيك ممثله ounoun.com صور مص اللسان shruti hasan porn desixxxv.net indiaxx hindi movie xxx video flyporntube.net lokl sex www.xnxx.xom russianporntrends.com local assamese sex video mide-689 freejavstreaming.net 無修正 温泉 تحميل سكس مترجم orivive.com فيس بوك سكس carla abellana shows pinoytvpage.com starstruck last batch sexy girls xxx pornia.info hindi hot sexy video download ang probinsyano june 24 2022 full episode advance teleseryeone.com apoy sa langit june 9 2022 artikulo 247 may 19 eteleserye.com umiiwas in english sexa xxx blowjobporntrends.com tamil sex full video tamil padam sex padam tubedessert.mobi www videos9 com india ka sexy video teenporntrends.com pornohut.su