【问题标题】:show days, hours, minutes a go from mysql timestamp从mysql时间戳显示天,小时,分钟
【发布时间】:2011-05-31 12:44:26
【问题描述】:

我正在努力完成这项工作。 我想要的是显示时间而不是时间戳。

找到了这个函数,但它适用于 unix date。尝试使用 strtotime($fecha) 对其进行转换,但我回显它及其 null...

您认为我必须更改计划,或者我只需要将日期格式正确转换为 unix?

function hace($fecha){
        //obtener la hora en formato unix
        $ahora=time();
        $fecha_unix = strtotime($fecha);
        mostrar_notificacion($fecha_unix);
        //obtener la diferencia de segundos
        $segundos=$ahora-$fecha_unix;

        //dias es la division de n segs entre 86400 segundos que representa un dia;
        $dias=floor($segundos/86400);

        //mod_hora es el sobrante, en horas, de la division de días;
        $mod_hora=$segundos%86400;

        //hora es la division entre el sobrante de horas y 3600 segundos que representa una hora;
        $horas=floor($mod_hora/3600);

        //mod_minuto es el sobrante, en minutos, de la division de horas;
        $mod_minuto=$mod_hora%3600;

        //minuto es la division entre el sobrante y 60 segundos que representa un minuto;
        $minutos=floor($mod_minuto/60);

        if($horas<=0){
                return "hace ".$minutos." minutos";
        }elseif($dias<=0){
                return "hace ".$horas." horas ".$minutos." minutos";
        }else{
                return "hace ".$dias." dias ".$horas." horas y ".$minutos." minutos";
        }
                }

【问题讨论】:

  • $fecha 有什么格式?它是 UNIX 时间戳数字还是日期时间字符串?
  • 如果$fecha 是一个包含可解析日期的字符串,那么函数应该没问题。
  • 正如我所说,它是一个时间戳,它包含例如:'2010-12-22 10:12:30'

标签: php mysql timestamp unix-timestamp


【解决方案1】:

我会这样做:

$diff = $ahora - $fecha_unix;
$sec = $diff % 60;
$min = floor($diff / 60) % 60;
$hours = floor($diff / 3600) % 24;
$days = floor($diff / 86400);

【讨论】:

    【解决方案2】:

    你看过this PHP manual's comment吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-24
      相关资源
      最近更新 更多