Destacar tu contenido Nuevo

>> //seccion/php/ -- 0 comentario /// Agregado el 2005-09-08 @ Por Vashu

Una manera facil y rapida de hacerle a los que visitan tu web que cuales contenidos son nuevos.

Alguna vez has querido tener una manera de mostrar en una pagina que un articulo o noticia en tu site es nuevo, pero que una vez que cumpla cierto tiempo de haber sido posteado esta marca automáticamente desaparezca?

Podrías hacerlo de manera manual, pero esto en una pagina con mucho contenido puede volverse tedioso y a su vez innecesario.

Con este código a continuación ustedes pueden automatizar este proceso gracias al php y unas cuantas de sus funciones de fecha.

Primero necesitas una fuente de la fecha del contenido, preferiblemente una base de datos, con un campo donde se almacene la fecha en cualquier formato que deseemos. Con el propósito de este tutorial usaremos el formato de fecha Y/m/d lo que vendría siendo por ejemplo 2004/10/13.

Lo primero que debemos hacer es separar esta fecha en sus diferentes partes (año, día y mes). Esto lo hacemos con la función de explotar de php.

Codigo:

1
2
3
4
5
<?php
$fecha_act 
explode("/"$fecha); 
// donde $fecha es la fecha que le estamos alimentando. 
//Y el "/" es el separador por el cual lo separamos
?>


Esto nos genera un array llamado $fecha_act con los valores del año, mes y día en sus diferentes valores del array.

Entonces utilizamos este método IsNew el cual valida si la fecha del articulo y la fecha actual se encuentran entre un rango definido de días.

Codigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
//se le alimentan los valores del array $fecha_act
function IsNew ($ano_art$mes_art$dia_art)
{
//valida si nos encontramos en el mismo año que el año del articulo
if (date('Y') == $ano_art
   {
    
//si sí nos encontramos 
    //en el mismo año, pues convierte ambas fechas en días
    
$mes_actual = (date('m')* 30)+ date('d'); 
    
$mes_art = ($mes_art*30)+$dia_art;
    
//calcula la diferencia de días que durara un articulo siendo nuevo. 
    //(30 días en este ejemplo)
    
if (($mes_actual $mes_art)<= 30
    {
    return 
true
    
//si se encuentra entre los 30 días retorna verdad
    
}
    else
    {
        return 
false
        
//si es mayor a 30 días retorna falso
    
}
}
else
{
    
//en caso de que no sea el mismo año
    
if ((date('m')== 1) && $mes_art == 12
    {
        
//si el mes actual es enero y el mes del articulo diciembre...
        
if (((date('d')>15) || ($dia_art<15))) 
        {
            return 
false;
        }
        else
        {
           return 
true;
        }    
    }
    else
    {
    
//en caso de que no sea enero o de que el 
    //articulo no fue escrito en diciembre
    
        
return false;
    }
}
}
?>


Esta función retornara verdadero siempre que el artículo sea nuevo y falso siempre que no lo sea. Puedes cambiar la cantidad de días que un artículo se considera nuevo cambiando el valor en la línea 10 por el valor que quieras. (Como usamos un modelo de meses de 30 días, puede que halla una diferencia de 2-3 días entre el plazo elegido)

Para ejecutar el método se le alimenta el valor de la fecha del documento de la siguiente manera:

Codigo:
1
2
3
<?php
IsNew
($fecha_act[0],$fecha_act[1],$fecha_act[2]);
?>


Ya dependiendo del diseño de la página puedes poner diferentes comportamientos para un documento siendo nuevo cuando IsNew regrese un valor verdadero o uno diferente cuando es falso.

Espero que les halle sido útil y cualquier mejora al código que se les ocurra. No duden en compartirla