Laravel 5.2にはアプリケーションがあります。私たちのデータベースでは、published_atは、creation_atおよびupdated_atと同様に、UTCでのカーボンインスタンスのタイムスタンプに日付を格納します。UTCからのローカルタイムゾーンによるデータフィルタリングを取得する
すべての投稿はすべてのタイムゾーンで真夜中に公開されるはずです。日付データをUTC形式で保存しました。
'published_at' => '2016-04-12 00:00:00'
私たちは何をしたいのですか。
米国の人が見た場合、深夜の後にその投稿を見ます。中国の人がそれを見ると、深夜の後にそのポストを見る。どうすればこれを達成できますか?
これは現時点で私たちがやっていることです。しかし、我々はそれがうまくいかないと思う。
public function all($limit, array $data = [])
{
$posts = $this->post->with('categories')
->where(
'published_at', Carbon::now()->setTimezone($data['user_timezone'])
->format('Y-m-d 00:00:00')
)
->orderBy('published_at', 'ASC')
->paginate($limit);
}
私たちがタイムゾーンで作業しているのは初めてのことで、わかりません。どんな助けでも大歓迎です。ありがとうございました。
詳細情報とドキュメント:http://carbon.nesbot.com/docs/ –
それが私たちが探しているものです。ありがとうございました。また、今日の投稿を取得しようとしているとき、whereBetween()節を のように置き換えていますwhereBetween( 'published_at'、array(Carbon :: now($ data ['timezone'] ) - > format( 'Ymd 00:00:00')、Carbon :: now($ data ['timezone']) - > format( 'Ymd H:i:s')) 'となります。これは動作しますか? – IamGhale
@IamGhaleあなたは 'whereBetween( 'published_at'、[Carbon :: now($ data ['timezone'])、Carbon :: tomorrow($ data ['timezone']))' –