Laravel 5 基于教程日期和Laravel中指定的时区显示教程

Laravel 5 基于教程日期和Laravel中指定的时区显示教程,laravel-5,pagination,timezone,laravel-5.4,laravel-eloquent,Laravel 5,Pagination,Timezone,Laravel 5.4,Laravel Eloquent,请帮忙。我在一个特定日期和时间首次登场的网站上工作。在每个教程上设置的日期向每个学生显示教程。但是,我希望教程不仅按照每个教程上设置的日期和时间首次发布,而且还基于每个教程上设置的时区。例如,如果一个教程设置为今天美国东部标准时间(EST)晚上8:00开始,它应该在该时间开始,而不是在应用程序设置的时区开始 我使用Laravel collection filter()编写了下面的代码,这似乎可以实现这个目的。但是,页面加载时间较长,我无法使用laravel paginate()。我需要使用Lar

请帮忙。我在一个特定日期和时间首次登场的网站上工作。在每个教程上设置的日期向每个学生显示教程。但是,我希望教程不仅按照每个教程上设置的日期和时间首次发布,而且还基于每个教程上设置的时区。例如,如果一个教程设置为今天美国东部标准时间(EST)晚上8:00开始,它应该在该时间开始,而不是在应用程序设置的时区开始

我使用Laravel collection filter()编写了下面的代码,这似乎可以实现这个目的。但是,页面加载时间较长,我无法使用laravel paginate()。我需要使用Laravel paginate()来减少一次提取的记录数。有超过四千个教程。请帮忙

// upcoming tutorials
$tutorials = Tutorial::orderBy('id', 'desc)->paginate(20);
$futureTuts = $tutorials->filter(function ($value, $key) {
    $today = new \DateTime('now');
    $show_date = new \DateTime($value->show_date, new \DateTimeZone($value->timezones->name));
    return $show_date > $today;
});

$upcoming_tuts = $futureTuts->all();
请提供任何解决方案,以便能够使用Laravel default paginate()。我相信使用Laravel分页将导致页面加载更快。我用的是Laravel 5.4


谢谢

尝试使用datatable可以作为api从数据库中筛选数据 这是包裹 yajra/laravel数据表oracle 如果您想使用“已发布”,请尝试以下不同的方法 将列添加为发布位置

  $table->dateTime('published_at');
而不是在模型中定义表

 protected $dates = ['published_at'];

    public function setPublishedAtAttribute($date){

        $this->attributes['published_at'] = Carbon::createFromFormat('Y-m-d', $date);
    }

    public function scopePublished($query)
    {
        $query->where('published_at', '<=', Carbon::now());
    }

    public function scopeUnpublished($query)
    {
        $query->where('published_at', '>', Carbon::now());
    }

    public function getCreatedAtAttribute($date)
    {
        return $this->asDateTime($date)->toFormattedDateString();
    }

我真的不懂你的语言,但似乎我可以帮助你,我给你2个建议answer@sid-心脏,我如何整合,以便也检查每个教程上设置的时区?现在,它只是将今天的日期与发布的日期进行比较。我们要做的是检查Carbon::now()是否等于时间和时区的发布时间。如何整合时区,以便该方法也检查每个教程上设置的时区?现在,它只是将今天的日期与发布的日期进行比较。我们要做的是根据时间和时区检查发布时间是否大于Carbon::now()。每个教程的时区字段与发布时间字段不同。这就是我问的原因。
$tutorials = Tutorial::orderBy('created_at', 'desc')->published()->paginate(5);