如何在laravel 4中获得日期时间差

如何在laravel 4中获得日期时间差,laravel,laravel-4,Laravel,Laravel 4,我用的是Laravel4。但我在查找两个日期之间的差异时遇到了问题:一个来自数据库表,另一个是当前日期时间。从日期差异来看,我预计1小时或1天。我尝试了一些解决方案,但还不能解决这个问题。而且我也不知道更好的解决方法。如果你们有什么解决办法,请给我举个例子。如果我需要图书馆,请告诉我。这是我的密码: $lecture_id = Input::get('lecture_id'); $delegate_id = Input::get('delegate_id');

我用的是Laravel4。但我在查找两个日期之间的差异时遇到了问题:一个来自数据库表,另一个是当前日期时间。从日期差异来看,我预计1小时或1天。我尝试了一些解决方案,但还不能解决这个问题。而且我也不知道更好的解决方法。如果你们有什么解决办法,请给我举个例子。如果我需要图书馆,请告诉我。这是我的密码:

$lecture_id = Input::get('lecture_id');
        $delegate_id = Input::get('delegate_id');

        // $newDate = new Datetime();

        $lecture = Lecture::find($lecture_id);

        // $lec_date = Date::forge($lecture->start_time);
        // $lec_date = new Datetime($lecture->start_time);

        $lec_date = $lecture->start_time->diffForHumans(Carbon::now());


        if ( $lec_date > 1) {
            LectureDelegate::create(array(
                'lecture_id' => Input::get('lecture_id'),
                'delegate_id'=> Input::get('delegate_id')
            ));
            return Redirect::to('/')->with('message', 'Your are successfully apply to the lecture');
        }
应该是:

 $lec_date = Carbon::createFromTimeStamp( strtotime( $lecture->start_time ) )->diffForHumans();
或者可能:

 $lec_date = $lecture->start_time->diffForHumans();
如果将其添加到
touch.php
模型中:

public function getDates()
{
    return array('created_at', 'updated_at', 'deleted_at', 'start_time');
}
从:

默认情况下,Eloquent将转换创建的、更新的和 已删除碳元素实例的列中的\u

您可以自定义自动变异的字段,甚至 通过重写的getDates方法,完全禁用此变异 模型

至于
diffForHumans
各州:

该函数的唯一参数是另一个Carbon实例 如果未指定,则默认为now()


更新

如果从数据库传递到
diffForHumans
的时间戳是将来的,则Carbon会自动进行如下返回:

将将来的值与现在的默认值进行比较时:

  • 1小时后
  • 5个月后
将过去的值与另一个值进行比较时:

  • 1小时前
  • 5个月前

谢谢您抽出时间。你能告诉我如何在“今天之前”使用碳元素吗。@user3366155有效吗?如果有,您也可以通过单击答案旁边的复选标记来接受答案。Goodluck:)编辑将更新我的答案。