it-swarm.com.de

Google Sitemap-Datumsformat

Ich brauche ein Datumsformat für Sitemaps in PHP.

Wie kann ich das machen ?

Ist diese Ausgabe richtig?

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

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

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

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

33
Dunhamzzz

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

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

Ab PHP5 können Sie auch das c-Format-Zeichen verwenden, um dieselbe Zeichenfolge zu drucken.

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

Diese würden beide Folgendes ausdrucken:

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

QUELLE

19
Erfan Safarpoor

Um aus dem MySQL-Datetime-Format in das für lastmod in Sitemaps benötigte Format zu konvertieren, verwenden Sie einfach den Code PHP.

$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
16
NXT

Laut Google ist der Wert ein optionales Feld, das, falls angegeben, als formatiert werden muss

YYYY-MM-DDThh:mmTZD 

Der Standardexport einer SQL-Datetime ist abhängig von der Spracheinstellung für Ihren Server , und kann Leerzeichen und folgende TZD-Werte enthalten:

2014-09-19 10:33:05 UTC

Das W3 spezifiziert dass TZD in einer von drei Optionen formatiert werden kann

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

Leerzeichen aus Ihrer Standardformatierung müssen entfernt werden. Das Zeichen 'T' muss vor der Zeit eingefügt werden, und das TZD muss mit einem der unterstützten Typen übereinstimmen.

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

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

Ab PHP5 können Sie auch das c-Format-Zeichen verwenden, um dieselbe Zeichenfolge zu drucken.

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

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

Y-m-dTH:i:sP.

Was Sie brauchen, ist jedoch 

Y-m-d\TH:i:sP

Dieser einzelne Backslash macht den Unterschied. Irgendwann wurde ein Großbuchstabe T zu einem Sonderzeichen in PHP, das den Timecode kennzeichnet. Wenn Sie also das Escapezeichen nicht verlassen, werden Sie genau das bekommen, was Sie berichten.

3
AdamJones

Sie haben viele Formate zur Auswahl . Wenn Sie den Parameter c mit der Funktion date() verwenden, wird das empfohlene Format für Sie angezeigt.

2
John Conde

lösche "EES" Meine ist wie folgt 2013-12-26T19: 00: 00-05: 00 und es funktioniert http: //www.industry-automation -parts.com/1_d_0_sitemap.xml

1
user3152317

Ich weiß, die Frage war PHP, aber ich fand diese Seite für Node/JavaScript. Das nächste Äquivalent ist also Date.toISOString():

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

Tatsächlich gibt es zwei Ansätze dafür.

Der erste Ansatz besteht darin, ein gültiges Datum für die XML-Sitemap festzulegen, das das Zeichen "C" enthält, das den Wert (2019-06) ergab -03T17: 30: 21-05: 00). Teste es hier

<lastmod>'.date('c', strtotime($row['date'])).'</lastmod>

Der zweite Ansatz besteht darin, ein gültiges Datum für die RSS-Sitemap festzulegen, das das Zeichen "r" enthält, das den Wert (2019-03) ergab -07T17: 55: 44 + 00: 00).

<pubDate>'.date('r', strtotime($row['date'])).'</pubDate>

Hoffe das hilft dir. Vielen Dank

0
Jodyshop

mit moment.js;

moment().format('YYY-MM-DDTHH:mm:ssZ')
0
Ahmet Şimşek