{source}
<?php
setlocale(LC_TIME, 'es_ES.utf8');
function obtenerNombreMes($numeroMes) {
$meses = array(
1 => 'enero',
2 => 'febrero',
3 => 'marzo',
4 => 'abril',
5 => 'mayo',
6 => 'junio',
7 => 'julio',
8 => 'agosto',
9 => 'septiembre',
10 => 'octubre',
11 => 'noviembre',
12 => 'diciembre'
);
return $meses[$numeroMes];
}
$fecha = new DateTime();
$numeroMes = (int) $fecha->format('n');
$nombreMes = obtenerNombreMes($numeroMes);
echo '<p style="font-size: 20px;"><b>Noticias de otros '.$fecha->format('d \d\e').' '.$nombreMes.', que ya forman parte de nuestra historia informativa.</b></p>';
?>
{/source}
Comenzamos por las más antiguas:
{source}
<?php
use Joomla\CMS\Factory;
use Joomla\CMS\Database\DatabaseDriver;
// Obtener la instancia de la base de datos
$db = Factory::getDbo();
// Consulta SQL
$query = $db->getQuery(true);
$query->select($db->quoteName(array('id', 'created', 'title', 'catid')))
->from($db->quoteName('#__content'))
->where("DATE_FORMAT(created, '%m-%d') = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 YEAR), '%m-%d')")
->order($db->quoteName('created') . ' ASC');
// Ejecutar consulta
$db->setQuery($query);
$results = $db->loadObjectList();
// Recorrer resultados
foreach ($results as $article) {
// Año de publicación
$year = substr($article->created, 0, 4);
// Calcular diferencia de años
$now = date('Y');
$diff = $now - $year;
// Obtener el enlace a la noticia
$articleLink = JRoute::_('index.php?option=com_content&view=article&id=' . $article->id);
// Obtener el nombre de la categoría
$query = $db->getQuery(true);
$query->select($db->quoteName('title'))
->from($db->quoteName('#__categories'))
->where($db->quoteName('id') . ' = ' . (int)$article->catid);
$db->setQuery($query);
$categoryName = $db->loadResult();
// Formato de salida con enlace, año, diferencia de años y nombre de categoría
echo '<strong>' . $year . '</strong>, hace <strong>' . $diff . ' años</strong>, ' . $categoryName . ', <a href="' . $articleLink . '">' . $article->title . '</a><br>';
}
?>
{/source}
|
{source} <meta charset='utf-8'> {/source} 1.- La información que se publicó este día puede ser anuncio de un acontecimiento posterior, o de una información anterior. |
{source}
<meta charset='utf-8'>
<?php
$fecha = new DateTime();
// Arrays para mapear nombres de días de la semana y meses en español
$diasSemana = [
1 => 'lunes',
2 => 'martes',
3 => 'miércoles',
4 => 'jueves',
5 => 'viernes',
6 => 'sábado',
7 => 'domingo'
];
$meses = [
1 => 'enero',
2 => 'febrero',
3 => 'marzo',
4 => 'abril',
5 => 'mayo',
6 => 'junio',
7 => 'julio',
8 => 'agosto',
9 => 'septiembre',
10 => 'octubre',
11 => 'noviembre',
12 => 'diciembre'
];
$diaSemana = $diasSemana[(int)$fecha->format('N')]; // Obtener el nombre del día de la semana en español
$diaMes = $fecha->format('d');
$nombreMes = $meses[(int)$fecha->format('n')]; // Obtener el nombre del mes en español
$año = $fecha->format('Y');
$hora = $fecha->format('H:i');
echo "<span style='font-size: 18px; font-weight: bold;'>Hoy es $diaSemana, $diaMes de $nombreMes de $año, son las $hora.</span>";
?>
{/source}