Php 提前1个月添加记录
我有以下代码:Php 提前1个月添加记录,php,laravel,Php,Laravel,我有以下代码: $tasks = new Task(); $tasks->text = 'Velo'; $tasks->role_id = 1; $tasks->progress = 0.0; $tasks->duration = 1; $tasks->start_date = Carbon::now()->addMonth(); $tasks->parent = 0; $tasks->type = "project"; $tasks->co
$tasks = new Task();
$tasks->text = 'Velo';
$tasks->role_id = 1;
$tasks->progress = 0.0;
$tasks->duration = 1;
$tasks->start_date = Carbon::now()->addMonth();
$tasks->parent = 0;
$tasks->type = "project";
$tasks->color = '#ccc';
$tasks->save();
$tasks = new Task();
$tasks->text = 'Auto';
$tasks->role_id = 1;
$tasks->progress = 0.0;
$tasks->duration = 1;
$tasks->start_date = Carbon::now()->addMonth();
$tasks->parent = 0;
$tasks->type = "project";
$tasks->color = '#ccc';
$tasks->save();
$tasks = new Task();
$tasks->text = 'Moto';
$tasks->role_id = 1;
$tasks->progress = 0.0;
$tasks->duration = 1;
$tasks->start_date = Carbon::now()->addMonth();
$tasks->parent = 0;
$tasks->type = "project";
$tasks->color = '#ccc';
$tasks->save();
如何提前一个月添加这些记录?我需要循环吗?但是日期呢?如何添加记录?我需要这个月的每一天都有他们的记录。对于这种类型的场景,你可以使用变异基因 这里有一个例子
public function setStartDateAttribute($value)
{
$this->attributes['start_date'] = Carbon::now()->addMonth();
}
将上述函数放入您的模型中,之后您不需要为每次插入设置日期
更多信息
希望这能有所帮助。如果要添加多个任务,请始终使用循环。希望下面的代码能帮助您
// Array of tasks
$task_array = [
[
"text" => 'Velo',
"role_id" => 1,
"progress" => 0.0,
"duration" => 1,
"parent" => 0,
"type" => "project",
"color" => '#ccc'
],
[
"text" => 'Auto',
"role_id" => 1,
"progress" => 0.0,
"duration" => 1,
"parent" => 0,
"type" => "project",
"color" => '#ccc'
]
];
// Loop to save tasks from task_list
foreach ($task_array as $task) {
$tasks = new Task();
$tasks->text = $task["text"]
$tasks->role_id = $task["role_id"]
$tasks->progress = $task["progress"]
$tasks->duration = $task["duration"]
$tasks->parent = $task["parent"]
$tasks->type = $task["type"]
$tasks->color = $task["color"]
// Next month date from now
$next_month_date = date('Y-m-d', strtotime('+1 month'));
$tasks->start_date = $next_month_date;
// Save Task
$tasks->save();
}
是的,您需要一个循环和一个日期周期来循环
$from = \Carbon\Carbon::today();
$to = $from->copy()->addMonth();
$period = new \DatePeriod($from, new \DateInterval('P1D'), $to);
foreach ($period as $date) {
$tasks = new Task();
$tasks->text = 'Velo';
$tasks->role_id = 1;
$tasks->progress = 0.0;
$tasks->duration = 1;
$tasks->start_date = $date;
$tasks->parent = 0;
$tasks->type = "project";
$tasks->color = '#ccc';
$tasks->save();
$tasks = new Task();
$tasks->text = 'Auto';
$tasks->role_id = 1;
$tasks->progress = 0.0;
$tasks->duration = 1;
$tasks->start_date = $date;
$tasks->parent = 0;
$tasks->type = "project";
$tasks->color = '#ccc';
$tasks->save();
$tasks = new Task();
$tasks->text = 'Moto';
$tasks->role_id = 1;
$tasks->progress = 0.0;
$tasks->duration = 1;
$tasks->start_date = $date;
$tasks->parent = 0;
$tasks->type = "project";
$tasks->color = '#ccc';
$tasks->save();
}
您还可以简化循环
$tasks = ['Velo', 'Auto', 'Moto'];
foreach ($period as $date) {
foreach ($tasks as $task) {
$task = new Task();
$task->text = $task;
$task->role_id = 1;
$task->progress = 0.0;
$task->duration = 1;
$task->start_date = $date;
$task->parent = 0;
$task->type = "project";
$task->color = '#ccc';
$task->save();
}
}
循环什么?你的问题不清楚。如果你需要在日期之间循环。可以使用DateTime()函数获取月份。很难理解需要什么,在数据库中我会提前一个月有记录?是的。从应用程序服务器时间提前一个月。我需要提前一个月在数据库中记录这些记录。它将从应用程序服务器时间提前一个月保存到数据库中。如果您的服务器日期为2018-01-01,则将
开始日期设置为2018-02-01否。我需要提前一个月将记录写入数据库。我需要每天有3个数据库记录。今天是23岁。我没有记录,我需要记录,明天我需要记录e.t.c