提问者:小点点

如何将整数转换为date_time?


我有一个平均时间的数字。 我想返回像“00:00:12”这样的时间格式,怎么做?

a_function(){

  $sum_duration = Model::where('as_user_id',$this->id)->sum('duration');
  //sum_duration = 21
  $week_count = $first_impression->created_at->diffInWeeks($last_impression->created_at);
  //week_count = 2

  $time = date_create(round($sum_duration / ($week_count == 0? 1:$week_count)));
  //false

  return date_format( $time,"H:i:s");
}

上面的代码不起作用。 如何更改为显示时间格式,如00:00:00((h:i:s))


共3个答案

匿名用户

我假设你有

$sum_duration = 21; // from your calculation
$week_count = 2; // from your calculation
$default = Carbon::now()->setTime(0, 0); // set as 00:00:00
$difference = round($sum_duration / ($week_count == 0 ? 1 : $week_count)); // your calculation
$default->addSeconds($difference); // add seconds to 00:00:00

return $default->format('H:i:s');

编辑

匿名用户

假设持续时间以分钟为单位。 可以使用gmdate()方法对其进行格式化。

示例:

gmdate("H:i:s", 123) // returns 00:02:03

匿名用户

我用createFromTime方法做了一个解决方案;

    $sum_duration = Model::where('as_user_id',$this->id)->sum('duration');
    //sum_duration = 21
    $week_count = $first_impression->created_at->diffInWeeks($last_impression->created_at);
    //week_count = 2

    $time = Carbon::createFromTime(0,0,round($sum_duration / ($week_count == 0? 1:$week_count)));

    return date_format( $time,"H:i:s");