Las fechas siempre resultan problemáticas a la hora de compararlas porque la mayoría de las funciones de WordPress devuelven una cadena de texto. Cuando se trata de comprobar si son iguales o diferentes es sencillo, pero si queremos sumar o restar días a una fecha determinada o comprobar si una es posterior a otra el planteamiento cambia. Veamos dos ejemplos:
1) Vamos a añadir una nota que informa a los visitantes de cuando se actualizó por última vez la entrada. Basta con formatear ambas fechas de forma idéntica e incluir el código en el loop del archivo single.php:
<?php $actualizado = get_the_modified_date('l, j \d\e F \d\e Y'); $publicado = get_the_date('l, j \d\e F \d\e Y'); if ($actualizado !== $publicado) : echo '<p>Última actualización: '. $actualizado . '</p>'; endif ?>
El resultado sería, por ejemplo, el siguiente: "Última actualización: Domingo, 4 de marzo de 2012".
2) Imaginemos ahora que ejecutamos una consulta y necesitamos mostrar las entradas que se hayan actualizado en el último mes:
<?php $mes_anterior = mktime(0, 0, 0, date("m")-1, date("d"), date("Y")); $modificado = get_the_modified_date('d/m/Y'); list($dia,$mes,$ano) = explode('/',$modificado); $fecha_modificado = mktime(0,0,0,$mes,$dia,$ano); if ($fecha_modificado > $mesanterior) : echo 'Esta entrada se actualizó hace menos de un mes'; endif ?>
Expliquemos con algo más de detalle:
- Línea 2: calculamos la marca de tiempo Unix para hace 1 mes.
- Líneas 3 al 5: calculamos la fecha en la que fue modificada la entrada por última vez y la convertimos a marca de tiempo Unix.
- Línea 6: efectuamos la comparación gracias a que ambas variables son números enteros.
Documentación: date, mktime, get the modified date y get the date.