Necesito el formato de fecha para los sitemaps en php.Google Sitemap Formato de fecha
¿Cómo puedo hacer eso?
¿Es esta salida correcta?
<lastmod>2012-08-02EEST18:01:18+03:00</lastmod>
Necesito el formato de fecha para los sitemaps en php.Google Sitemap Formato de fecha
¿Cómo puedo hacer eso?
¿Es esta salida correcta?
<lastmod>2012-08-02EEST18:01:18+03:00</lastmod>
Si usted tiene la marca de tiempo puede dar formato a la fecha correcta de esta manera:
<lastmod><?php echo date('c', $timestamp); ?></lastmod>
Sello de tiempo podría ser time()
(por hora) o algún otro método de ir a buscar un tiemstamp Unix strtotime()
estoy recibiendo datos lastmod de la base de datos. y es formato de fecha y hora. Estoy usando strtotime para convertir. si el tipo es correcto para google, funciona. Gracias. –
You have a lot of formats to choose from. El uso del parámetro c
con la función date()
obtendrá el formato recomendado para usted.
Para convertir desde el formato de fecha y hora de MySQL al necesario para lastmod en los mapas de sitio, simplemente 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 fecha y hora actual en el W3C de fecha y hora de codificación (como se usa en archivos sitemap.xml) utilizar los siguientes parámetros.
echo date('Y-m-dTH:i:sP', time());
A partir de PHP5 también puede usar el carácter de formato c para imprimir exactamente la misma cadena.
echo date('c',time());
Estos serían tanto imprimir el siguiente:
2009-04-03T11:49:00+01:00
+1 por dar una opción para PHP4. –
La cadena de fecha que da es el caso del problema de @ user1329212. He publicado la cadena correcta como respuesta. – AdamJones
Borrar "EEE" la mina es como esto 2013-12-26T19: 00: 00-05: 00 y funciona http://www.industry-automation-parts.com/1_e_0_sitemap.xml
Obteniendo esta salida porque usaste el viejo sello de tiempo recomendado anillo de
Y-m-dTH:i:sP.
Sin embargo, lo que necesita es
Y-m-d\TH:i:sP
Esta barra invertida única que hará la diferencia. En algún momento, una T mayúscula se convirtió en un carácter especial en PHP que significa código de tiempo, por lo que si no escapa de la T obtendrá exactamente lo que informa.
According to Google, que valor es un campo opcional que, si se proporciona, debe estar formateada como
YYYY-MM-DDThh:mmTZD
La exportación predeterminado de un datetime SQL es dependent on the language setting for your server, y puede incluir espacios y caracterizado TZD tales como:
2014-09-19 10:33:05 UTC
The W3 specify que TZD puede ser formateado en cualquiera de las tres opciones
TZD zona = tiempo de designador (Z o + hh: mm o -hh: mm)
Se deben quitar los espacios de su formateo predeterminado; el carácter 'T' debe insertarse antes de tiempo, y el TZD debe coincidir con uno de los tipos soportados.
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 usar el carácter de formato c para imprimir exactamente la misma cadena.
echo date('c',time());
Sé que la pregunta era sobre PHP, pero encontré esta página buscando en Nodo/JavaScript. Entonces, el equivalente más cercano es Date.toISOString()
:
var d = new Date();
d.toISOString(); // "2017-04-19T07:23:16.040Z"
¿quiere decir sitemaps agarrados por bots? –