0
Hola, esta es otra sugerencia.
Tanto en inc/class/c.core.php como en inc/smarty/plugins/modifier.hace.php, para reemplazar en el plugin solo deben toma lo que esta dentro de la funcion setHace(...) y usarlo
Función original:
Se puede reducir de esta manera:
Tanto en inc/class/c.core.php como en inc/smarty/plugins/modifier.hace.php, para reemplazar en el plugin solo deben toma lo que esta dentro de la funcion setHace(...) y usarlo
Función original:
Código PHP: ( Seleccionar Todo )
/**
* setHace()
* if ternario
*/
function setHace($fecha, $show = false){
$fecha = $fecha;
$ahora = time();
$tiempo = $ahora-$fecha;
if($fecha <= 0) return 'Nunca';
elseif(round($tiempo / 31536000) <= 0){
if(round($tiempo / 2678400) <= 0) {
if(round($tiempo / 86400) <= 0) {
if(round($tiempo / 3600) <= 0) {
if(round($tiempo / 60) <= 0) {
if($tiempo <= 60) $hace = 'instantes';
} else {
$can = round($tiempo / 60);
$word = ($can <= 1) ? 'minuto' : 'minutos';
$hace = "{$can} {$word}";
}
} else {
$can = round($tiempo / 3600);
$word = ($can <= 1) ? 'hora' : 'horas';
$hace = "{$can} {$word}";
}
} else {
$can = round($tiempo / 86400);
$word = ($can <= 1) ? 'día' : 'días';
$hace = "{$can} {$word}";
}
} else {
$can = round($tiempo / 2678400);
$word = ($can <= 1) ? 'mes' : 'meses';
$hace = "{$can} {$word}";
}
} else {
$can = round($tiempo / 31536000);
$word = ($can <= 1) ? 'año' : 'años';
$hace = "{$can} {$word}";
}
return ($show == true) ? 'Hace '.$hace : $hace;
}
Se puede reducir de esta manera:
Código PHP: ( Seleccionar Todo )
/**
* setHace($fecha, $show)
* @access public
* @param int $fecha
* @param bool $show
* @return string
*/
public function setHace(int $fecha = 0, $show = false){
# Creamos
$tiempo = time() - $fecha;
if($fecha <= 0) return 'Nunca';
// Declaración de unidades de tiempo, aunque es un aproximado
// Ya que existe años bisiestos 366 días
$unidades = [
31536000 => 'año',
2678400 => 'mes',
604800 => 'semana',
86400 => 'día',
3600 => 'hora',
60 => 'minuto'
];
foreach($unidades as $segundos => $nombre){
$round = round($tiempo / $segundos);
if($tiempo <= 60) $hace = "instantes";
else {
if($round > 0){
$nes = ($nombre === 'mes') ? 'es' : 's';
$hace = "{$round} {$nombre}" . ($round > 1 ? $nes : '');
break;
}
}
}
// Si se ha establecido la opción $show, se agrega 'Hace' al resultado
return ($show ? "Hace " : "") . $hace;
}