Ho bisogno del formato della data per le Sitemap in PHP.Formato data Sitemap di Google
Come posso farlo?
Questa uscita è corretta?
<lastmod>2012-08-02EEST18:01:18+03:00</lastmod>
Ho bisogno del formato della data per le Sitemap in PHP.Formato data Sitemap di Google
Come posso farlo?
Questa uscita è corretta?
<lastmod>2012-08-02EEST18:01:18+03:00</lastmod>
Se avete il timestamp è possibile formattare la data in modo corretto in questo modo:
<lastmod><?php echo date('c', $timestamp); ?></lastmod>
Tempo timbro potrebbe essere time()
(per ora attuale) o qualche altro metodo di andare a prendere un tiemstamp unix come strtotime()
Sto ricevendo i dati lastmod dal database. ed è il formato datetime. Sto usando lo strtotime per convertire. se il tipo è corretto per google funziona. Grazie. –
You have a lot of formats to choose from. L'utilizzo del parametro c
con la funzione date()
otterrà il formato consigliato per te.
Per convertire da un formato datetime di MySQL a quello necessario per lastmod in sitemap, è sufficiente utilizzare il codice PHP di seguito.
$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
Per formattare il timestamp corrente a codifica W3C Datetime (come usato in file sitemap.xml) utilizzare i seguenti parametri.
echo date('Y-m-dTH:i:sP', time());
A partire da PHP5 è anche possibile utilizzare il carattere di formato c per stampare la stessa stringa esatta.
echo date('c',time());
Questi sarebbero entrambi devono stampare la seguente:
2009-04-03T11:49:00+01:00
+1 per dare un'opzione per PHP4. –
La stringa di date che date è il caso del problema di @ user1329212. Ho pubblicato la stringa corretta come risposta. – AdamJones
Cancella "SEO" Il mio è come questo 2013-12-26T19: 00: 00-05: 00 e funziona http://www.industry-automation-parts.com/1_e_0_sitemap.xml
Ottieni questo risultato perché hai utilizzato il vecchio timestamp consigliato Anello di
Y-m-dTH:i:sP.
Tuttavia, ciò che vi serve è
Y-m-d\TH:i:sP
Questa singola barra rovesciata farà la differenza. Ad un certo punto una T maiuscola è diventata un carattere speciale in PHP che indica il timecode, quindi se non esci dalla T otterrai esattamente ciò che stai segnalando.
According to Google, ha valore è un campo opzionale che, se previsto, deve essere formattato come
YYYY-MM-DDThh:mmTZD
L'esportazione di default di un datetime SQL è dependent on the language setting for your server, e può includere spazi e caratterizzata TZD quali:
2014-09-19 10:33:05 UTC
The W3 specify che TZD può essere formattato in una qualsiasi delle tre opzioni
TZD = designatore fuso orario (Z o + hh: mm o -hh: mm)
Qualsiasi spazio dalla formattazione predefinita deve essere rimosso; il carattere 'T' deve essere inserito prima del tempo e il TZD deve corrispondere a uno dei tipi supportati.
Pertanto, per formattare il timestamp corrente, utilizzare i seguenti parametri.
echo date('Y-m-dTH:i:sP', time());
A partire da PHP5 è anche possibile utilizzare il carattere di formato c per stampare la stessa stringa esatta.
echo date('c',time());
So che la domanda era su PHP, ma ho trovato questa pagina googling per Node/JavaScript. Quindi l'equivalente più vicino è Date.toISOString()
:
var d = new Date();
d.toISOString(); // "2017-04-19T07:23:16.040Z"
intendi le sitemap prese dai bot? –