php - tool - sitemap website
Formato de fecha de Google Sitemap (9)
Necesito el formato de fecha para sitemaps en php.
Cómo puedo hacer eso ?
¿Esta salida es correcta?
<lastmod>2012-08-02EEST18:01:18+03:00</lastmod>
Estás obteniendo esta salida porque usaste la antigua cadena de marca de tiempo recomendada
Y-m-dTH:i:sP.
Sin embargo, lo que necesitas es
Y-m-d/TH:i:sP
Esta barra diagonal única hará la diferencia. En algún momento, una T mayúscula se convirtió en un carácter especial en el código de tiempo de PHP, por lo que si no escapa de la T, obtendrá exactamente lo que informa.
Para convertir el formato de fecha y hora de MySQL al que se necesita para lastmod en sitemaps, solo use el código PHP a continuación.
$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
Para formatear la marca de tiempo actual en la codificación W3C Datetime (como se usa en los archivos sitemap.xml) use los siguientes parámetros.
echo date(''Y-m-dTH:i:sP'', time());
A partir de PHP5, también puede utilizar el carácter de formato c para imprimir exactamente la misma cadena.
echo date(''c'',time());
Ambos imprimirían lo siguiente:
2009-04-03T11:49:00+01:00
Sé que la pregunta era sobre PHP, pero encontré esta página en Google para Nodo / JavaScript. Así que el equivalente más cercano es Date.toISOString()
:
var d = new Date();
d.toISOString(); // "2017-04-19T07:23:16.040Z"
Si tiene la marca de tiempo, puede formatear la fecha correctamente de la siguiente manera:
<lastmod><?php echo date(''c'', $timestamp); ?></lastmod>
La marca de tiempo podría ser time()
(para la hora actual) o algún otro método para obtener un unix tiemstamp como strtotime()
con moment.js;
moment().format(''YYY-MM-DDTHH:mm:ssZ'')
eliminar "EES" La mía es así 2013-12-26T19: 00: 00-05: 00 y funciona http://www.industry-automation-parts.com/1_e_0_sitemap.xml
Tienes muchos formatos para elegir . Si utiliza el parámetro c
con la función date()
obtendrá el formato recomendado para usted.
Según Google , el valor es un campo opcional que, si se proporciona, debe formatearse como
YYYY-MM-DDThh:mmTZD
La exportación predeterminada de una fecha y hora de SQL depende de la configuración de idioma de su servidor y puede incluir espacios y TZD caracterizados como:
2014-09-19 10:33:05 UTC
El W3 especifica que TZD puede formatearse en cualquiera de las tres opciones
TZD = designador de zona horaria (Z o + hh: mm o -hh: mm)
Los espacios de su formato predeterminado deben ser eliminados; el carácter ''T'' debe insertarse antes de la hora, y el TZD debe coincidir con uno de los tipos admitidos.
Por lo tanto, para formatear la marca de tiempo actual, use los siguientes parámetros.
echo date(''Y-m-dTH:i:sP'', time());
A partir de PHP5, también puede utilizar el carácter de formato c para imprimir exactamente la misma cadena.
echo date(''c'',time());