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>
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>
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
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:sP
mü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
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
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
John Conde
Sie haben viele Formate zur Auswahl. Verwendung der c
Parameter mit dem date()
Funktion ruft das empfohlene Format für Sie ab.
meinst du Sitemaps, die von Bots erfasst wurden?
– Abderrazak BOUADMA
2. August 2012 um 15:06 Uhr