首页 > 解决方案 > 在 Laravel 5.7 上添加日期时间

问题描述

这是我的控制器

public function storeAddSite(Request $request){

  if($request->submit=="Cancel")
      return redirect('/');


  if($request->submit=="Submit"){

      $site_name = $request->input('site_name');
      $site_url = $request->input('site_url');
      $crawl_id = $request->input('crawl_id');
      $ga_id = $request->input('ga_id');
      $uptime_code = $request->input('uptime_code');

      $email = $request->input('email');
      if($request->active == "active")
           $active = TRUE;
      else $active = FALSE;

      DB::table('sites')->insert(['site_name'=>$site_name,'site_url'=>$site_url,'deepcrawl_project_id'=>$crawl_id,'ga_id'=>$ga_id,'uptime_access_code'=>$uptime_code, 'recipients'=>$email, 'active'=>$active]);

  return redirect('/');
  }
}

这是我的网站迁移

public function up(){
    Schema::create('sites', function (Blueprint $table) {
        $table->increments('site_id');
        $table->string('site_name', 100);
        $table->string('site_url', 100);
        $table->integer('deepcrawl_project_id');
        $table->integer('ga_id');
        $table->string('uptime_access_code');
        $table->dateTime('monthly_email_date');
        $table->string('recipients')->unique();
        $table->boolean('active');
    });
}

Laravel 5.7 版 PHP 7.2.8 版

现在问题来了。我想将我的monthly_email_date 设置为每月的第一天,并希望将它也存储在我的数据库中。你知道怎么做吗?

标签: phplaravel

解决方案


LaravelCarbon内置了 PHP 日期库,因此要创建日期,请使用以下命令:

use Carbon\Carbon;

然后,在您的代码中:

$monthly_email_date = Carbon::now()->startOfMonth(); 
// Would be 2018-09-01 00:00:00

接下来,将其添加到您的插入语句中:

DB::table("sites")->insert([
  "site_name" => $site_name,
  "site_url" => $site_url,
  "deepcrawl_project_id" => $crawl_id,
  "ga_id" => $ga_id,
  "uptime_access_code" => $uptime_code, 
  "recipients" => $email, 
  "active" => $active,
  "monthly_email_date" => $monthly_email_date
]);

这会将您的monthly_email_date列值设置为2018-09-01 00:00:00.


推荐阅读