Php 拉威尔多时区酒店

Php 拉威尔多时区酒店,php,mysql,laravel,Php,Mysql,Laravel,我正在尝试建立一个用户出行数据库,其中包括存储: 航班号 出发机场 出发时间 到达机场 到达时间 请注意,两个机场可以位于不同的时区。我需要算出时差,还有这趟航班的天数等等 我不知道如何处理这个问题。我是否应该添加更多列来存储本地日期时间和UTC时间 此外,我还看到Laravel具有dateTimeTz()列类型。但是它似乎没有存储任何关于时区的信息 员额表: $table->dateTimeTz('newTime')->nullable(); 设置新时间: $p->ne

我正在尝试建立一个用户出行数据库,其中包括存储:

  • 航班号
  • 出发机场
  • 出发时间
  • 到达机场
  • 到达时间
请注意,两个机场可以位于不同的时区。我需要算出时差,还有这趟航班的天数等等

我不知道如何处理这个问题。我是否应该添加更多列来存储本地日期时间和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",
   }

最简单的方法是在UNIX时间戳中存储日期和时间(它与时区无关)。然后您可以将其转换为任何时区(取决于用户位置或机场时区)

最简单的方法是在UNIX时间戳中存储日期和时间(它与时区无关)。然后,您可以将其转换为任何时区(取决于用户位置或机场时区)

非常简单,请遵循它:

  • 以UTC格式存储所有时间戳(默认为laravel配置)
  • 用户可以选择自己的时区并将其保存在用户表中
  • 然后你可以用碳元素把日期转换成当地时间。(碳 图书馆,它已经在拉威尔的里面了)
例如,适用于居住在不同国家的用户,如
欧洲/伦敦
亚洲/加尔各答

$something->created_at->timezone($user->timezone);

很简单,按照它来做:

  • 以UTC格式存储所有时间戳(默认为laravel配置)
  • 用户可以选择自己的时区并将其保存在用户表中
  • 然后你可以用碳元素把日期转换成当地时间。(碳 图书馆,它已经在拉威尔的里面了)
例如,适用于居住在不同国家的用户,如
欧洲/伦敦
亚洲/加尔各答

$something->created_at->timezone($user->timezone);

不是一个直接的答案,但拉雷维尔使用碳库,所以可能看那些文件不是一个直接的答案,但拉雷维尔使用碳库,所以可能看那些文件