【发布时间】:2017-06-26 16:44:52
【问题描述】:
如果我正在构建一个时区感知 Laravel (Lumen) 应用程序,用户可能无法控制他们的数据库时区设置,但可以在配置中为我的应用程序提供自定义时区。
我还需要能够通过第三方应用程序中的直接连接将时间戳存储在数据库中(再次记住数据库配置中的时区可能不正确)所以我认为 unix 时间戳是合适的,所以我可以在我的第三方直连中使用UNIX_TIMESTAMP(NOW())。
我应该以 unix 整数格式存储时间戳吗?
自从
$table->timestamps();使用 TIMESTAMP 以来,在 Laravel 中全球支持这一点的最佳方式是什么当我查询数据库以将 json 输出到 API 时,如何确保日期/时间自动转换为 Laravel 配置中指定的时区?
注意:我不想翻译成多个时区,只是 .env 中的一个
当前.env
APP_TIMEZONE=UTC
当前迁移示例
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateSharesTable extends Migration
{
public function up()
{
Schema::create('shares', function (Blueprint $table) {
$table->increments('id');
$table->string('url', 500);
$table->string('description', 100);
$table->integer('hits');
$table->string('ip_address', 39);
$table->timestamps();
});
}
当前共享模型
namespace App;
use Illuminate\Database\Eloquent\Model;
class Share extends Model
{
protected $fillable = ['url', 'description', 'ip_address'];
protected $hidden = ['ip_address'];
}
当前控制器示例
namespace App\Http\Controllers;
use App\Share;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
class ShareController extends Controller
{
/**
* @SWG\Get(
* tags={"Shares"},
* path="/shares",
* summary="Finds all shares",
* description="Returns all shares ",
* @SWG\Response(
* response=200,
* description="A list of all shares"
* )
* )
*/
public function fetchAll()
{
return Share::get();
}
【问题讨论】:
标签: mysql laravel lumen laravel-5.4