<?php
class Time{
public static function RealTime($Fecha = ""){
$Intervalos = array("seg", "min", "hora", "día", "semana", "mes", "año");
$Duraciones = array("60","60","24","7","4.35","12");
$Indefinido = "Indefinido";
$FHora = "H:i:s";
$Formato = array("Y/m/d $FHora","Y-m-d $FHora","d/m/Y $FHora","d-m-Y $FHora");
$CF = count($Formato);
for ($i=0; $i < $CF; $i++){
$Validar = DateTime::createFromFormat($Formato[$i], $Fecha);
if ($Validar && $Validar->format($Formato[$i]) == $Fecha){
$Hoy = time();
$FechaUnix = strtotime($Fecha);
if (empty($FechaUnix) || empty($Fecha)){
return $Indefinido;
}
if ($FechaUnix == $Hoy){
return "Hace unos momentos";
}else{
if ($Hoy > $FechaUnix){
$Diferencia = $Hoy - $FechaUnix;
$Tiempo = "Hace";
}else{
$Diferencia = $FechaUnix - $Hoy;
$Tiempo = "Dentro de";
}
for ($i = 0; $Diferencia >= $Duraciones[$i] && $i < count($Duraciones)-1; $i++){
$Diferencia /= $Duraciones[$i];
}
$Diferencia = round($Diferencia);
if($Diferencia != 1){
$Intervalos[5] .= "e";
$Intervalos[$i] .= "s";
}
if (($Intervalos[$i] == "meses") && $Diferencia > 11){
$Diferencia = ceil($Diferencia / 12);
if ($Diferencia == 1){
return $Tiempo." ".$Diferencia." año";
}else{
return $Tiempo." ".$Diferencia." años";
}
}else{
return $Tiempo." ".$Diferencia." ".$Intervalos[$i];
}
}
}
}
}
}
?>
>> Definir la zona horaria, reemplazar el asterisco (*) por la zona horaria, para ver las zonas ve a http://php.net/manual/es/timezones.php.
date_default_timezone_set("America/*"); (En mi caso América)...
>> Formatos de fecha: "Y/m/d H:i:s", "Y-m-d H:i:s", "d/m/Y H:i:s" o "d-m-Y H:i:s".
Ejemplos:
echo Time::RealTime("2015-02-25 13:32:40"); // Válido.
echo Time::RealTime("22-02-2015 13:32:40"); // Válido.
echo Time::RealTime("2015/02/25 13:32:40"); // Válido.
echo Time::RealTime("22/02/2015 13:32:40"); // Válido.
echo Time::RealTime("2015.02.29 13:32"); // Inválido.
echo Time::RealTime("2015.02.25 25:32"); // Inválido.
echo Time::RealTime("29-02-2015"); // Inválido.
echo Time::RealTime("29.02.2015"); // Inválido.
echo Time::RealTime("29.02.2015 13:32:40"); // Inválido.
Be the first to comment
You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.