it-swarm.dev

Formát dat souboru Google Sitemap

Potřebuji formát data pro soubory Sitemap v PHP.

Jak to mohu udělat ?

Je tento výstup správný?

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

Pokud máte časové razítko, můžete datum správně naformátovat takto:

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

Časové razítko může být time() (pro aktuální čas) nebo nějaká jiná metoda načítání unixového tiemstampu jako strtotime()

33
Dunhamzzz

Pro formátování aktuální časové značky ve W3C Datetime kódování (jak je použito v souborech sitemap.xml) použijte následující parametry.

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

Od PHP5 můžete také použít znak formátu c pro tisk stejného řetězce.

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

Ty by mohly vytisknout následující:

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

ZDROJ

19
Erfan Safarpoor

Chcete-li převést z formátu datetime MySQL na formát potřebný pro lastmod v souborech Sitemap, stačí použít níže uvedený kód 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

Podle Google , hodnota je nepovinné pole, které, pokud je poskytováno, musí být formátováno jako

YYYY-MM-DDThh:mmTZD 

Výchozí export SQL datetime je v závislosti na nastavení jazyka pro váš server , a může obsahovat mezery a charakterizované TZD jako:

2014-09-19 10:33:05 UTC

W3 specifikuje že TZD může být formátován v jedné ze tří možností

TZD = označení časové zóny (Z nebo + hh: mm nebo -hh: mm)

Mezery z výchozího formátování musí být odstraněny; znak 'T' musí být vložen před časem a TZD musí odpovídat jednomu z podporovaných typů.

Pro formátování aktuální časové značky proto použijte následující parametry.

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

Od PHP5 můžete také použít znak formátu c pro tisk stejného řetězce.

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

Vaše získání tohoto výstupu, protože jste použili staré doporučené časové razítko řetězec

Y-m-dTH:i:sP.

Nicméně, co potřebujete je

Y-m-d\TH:i:sP

Toto jediné zpětné lomítko udělá rozdíl. V nějakém okamžiku kapitál T se stal zvláštním znakem v PHP znamenat timecode, tak jestliže vy neuniknete T vy dostanete přesně co vaše reportování.

3
AdamJones

Máte na výběr spoustu formátů . Pomocí parametru c s funkcí date() získáte pro vás doporučený formát.

2
John Conde

smazat "EES" Mine je jako tento 2013-12-26T19: 00: 00-05: 00 a funguje http://www.industry-automation-parts.com/1_e_0_sitemap.xml

1
user3152317

Vím, že otázka byla o PHP, ale našel jsem tuto stránku googling pro Node/JavaScript. Takže nejbližší ekvivalent je Date.toISOString():

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

s moment.js;

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