Google Sitemap-Datumsformat

Lesezeit: 3 Minuten

Ich brauche das Datumsformat für Sitemaps in PHP.

Wie kann ich das machen ?

Ist diese Ausgabe richtig?

<lastmod>2012-08-02EEST18:01:18+03:00</lastmod>

  • meinst du Sitemaps, die von Bots erfasst wurden?

    – Abderrazak BOUADMA

    2. August 2012 um 15:06 Uhr

Wenn Sie den Zeitstempel haben, können Sie das Datum wie folgt korrekt formatieren:

<lastmod><?php echo date('c', $timestamp); ?></lastmod>

Zeitstempel könnte sein time() (für die aktuelle Zeit) oder eine andere Methode zum Abrufen eines Unix-Zeitstempels wie z strtotime()

  • Ich erhalte Lastmod-Daten aus der Datenbank. und es ist das datetime-Format. Ich verwende strtotime zum Konvertieren. Wenn der Typ für Google korrekt ist, funktioniert es. Vielen Dank.

    Benutzer1329212

    2. August 2012 um 15:10 Uhr

Verwenden Sie die folgenden Parameter, um den aktuellen Zeitstempel in der W3C-Datetime-Codierung (wie in sitemap.xml-Dateien verwendet) zu formatieren.

echo date('Y-m-dTH:i:sP', time());

Ab PHP5 können Sie auch das c-Formatzeichen verwenden, um genau dieselbe Zeichenfolge auszugeben.

echo date('c',time());

Diese würden beide Folgendes ausdrucken:

2009-04-03T11:49:00+01:00

QUELLE

  • Die von Ihnen angegebene Datumszeichenfolge entspricht dem Problem von @ user1329212 . Ich habe die richtige Zeichenfolge als Antwort gepostet.

    – AdamJones

    28. August 2014 um 23:36 Uhr

  • @AdamJones und die Antwort von @NXT sind richtig: wenn Sie die Datumsformatzeichenfolge verwenden Y-m-dTH:i:sPmüssen Sie dem T entkommen, dh Y-m-d\TH:i:sP. Die Verwendung der PHP5-Option date(‘c’,time()) funktioniert jedoch einwandfrei.

    – FluffyKitten

    29. März 2018 um 1:14 Uhr

  • @FluffyKitten Funktioniert bei mir. Ich habe das Problem mit dem “T” -Zeichen, das Problem wird mit dem Escape behoben! Vielen Dank !

    – Jasson Rojas

    31. Mai 2021 um 4:46 Uhr

Konvertieren vom Datetime-Format von MySQL in das für Letzte Mod Verwenden Sie in Sitemaps einfach den unten stehenden PHP-Code.

$lastmod = '2012-11-28 10:53:17'; //MySQL datetime format

$datetime = new DateTime($lastmod);
$result = $datetime->format('Y-m-d\TH:i:sP');

echo $result; //2012-11-28T10:53:17+01:00

  • Könnte ein kürzeres Format verwenden $result = $datetime->format('c');. `

    – dotoree

    13. Mai 2018 um 21:33 Uhr

Benutzer-Avatar
xiatica

Laut Googleder Wert ist ein optionales Feld, das, falls vorhanden, formatiert werden muss

YYYY-MM-DDThh:mmTZD 

Der Standardexport einer SQL-Datetime hängt von der Spracheinstellung Ihres Servers ab und kann Leerzeichen und gekennzeichnete TZD enthalten, wie z. B.:

2014-09-19 10:33:05 UTC

Die W3 angeben dass TZD in einer von drei Optionen formatiert werden kann

TZD = Zeitzonenbezeichnung (Z oder +hh:mm oder -hh:mm)

Alle Leerzeichen aus Ihrer Standardformatierung müssen entfernt werden; das Zeichen „T“ muss vor der Zeit eingefügt werden, und die TZD muss einem der unterstützten Typen entsprechen.

Verwenden Sie daher zum Formatieren des aktuellen Zeitstempels die folgenden Parameter.

echo date('Y-m-dTH:i:sP', time());

Ab PHP5 können Sie auch das c-Formatzeichen verwenden, um genau dieselbe Zeichenfolge auszugeben.

echo date('c',time());

Ich weiß, die Frage bezog sich auf PHP, aber ich habe diese Seite beim Googeln nach Node/JavaScript gefunden. Das nächste Äquivalent ist also Date.toISOString():

var d = new Date();
d.toISOString(); // "2017-04-19T07:23:16.040Z"

  • Wenn es auf SO noch keine Frage & Antwort für eine Javascript-Version gibt, sollten Sie in Betracht ziehen, diese als neue Frage für andere Benutzer hinzuzufügen, die auch danach suchen! Siehe Eigene Frage beantworten

    – FluffyKitten

    29. März 2018 um 1:11 Uhr


Benutzer-Avatar
AdamJones

Sie erhalten diese Ausgabe, weil Sie die alte empfohlene Zeitstempelzeichenfolge von verwendet haben

Y-m-dTH:i:sP.

Was Sie jedoch brauchen, ist

Y-m-d\TH:i:sP

Dieser einzelne Backslash macht den Unterschied. Irgendwann wurde ein großes T zu einem Sonderzeichen in PHP, das Timecode bedeutet. Wenn Sie also dem T nicht entkommen, erhalten Sie genau das, was Sie berichten.

  • Wenn es auf SO noch keine Frage & Antwort für eine Javascript-Version gibt, sollten Sie in Betracht ziehen, diese als neue Frage für andere Benutzer hinzuzufügen, die auch danach suchen! Siehe Eigene Frage beantworten

    – FluffyKitten

    29. März 2018 um 1:11 Uhr


Benutzer-Avatar
John Conde

Sie haben viele Formate zur Auswahl. Verwendung der c Parameter mit dem date() Funktion ruft das empfohlene Format für Sie ab.

1078570cookie-checkGoogle Sitemap-Datumsformat

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy