我正在尝试构建一个用户旅行数据库,其中包括存储:
请注意,两个机场都可以位于不同的时区。我需要计算出这个航班的时差和天数等。
我不知道如何解决这个问题。我应该添加更多列来存储本地日期时间和UTC时间吗?
另外,我已经看到Laravel有dateTimeTz()
列类型。然而,它似乎并没有存储任何有关时区的信息?
帖子表:
$table->dateTimeTz('newTime')->nullable();
设定新时间:
$p->newTime = \Carbon\Carbon::now('Asia/Kolkata')
=> Carbon\Carbon {#841
+"date": "2017-03-28 16:23:33.490926",
+"timezone_type": 3,
+"timezone": "Asia/Kolkata",
}
>>> $p
=> App\Post {#836
id: 1,
user_id: 1,
title: "Et quaerat deserunt qui ullam voluptas.",
body: "Aut eos id ut qui laborum. Tempore rerum ut quas deserunt voluptas optio.",
slug: "et-quaerat-deserunt-qui-ullam-voluptas",
newTime: "2017-03-28 16:23:33",
created_at: "2017-03-28 10:51:36",
updated_at: "2017-03-28 10:51:36",
}
答案 0 :(得分:3)
非常简单:
例如,适用于居住在Europe/London
或Asia/Kolkata
$something->created_at->timezone($user->timezone);
答案 1 :(得分:2)
最简单的方法是在UNIX时间戳中存储日期和时间(它与时区无关)。然后您可以将其转换为任何时区(取决于用户位置或机场时区)