php - 从 2 个输入转换 laravel 中的时间
问题描述
我是 Laravel 的初学者。我在我的项目 Laravel 6 中使用。我有 2 个输入:
<input maxlength="5" type="text" name="hours_worked" class="form-control edited valid" value="" required="" onkeypress="return isNumberKey(event)">
<input type="text" name="minutes_worked" class="form-control edited valid" value="" required="" onkeypress="return isNumberKey(event)">
我使用以下代码保存到 db:
WorkingTime::create( $this->request->all()
例如,当有人在该字段中键入时,我遇到了问题。“90”分钟。我在数据库中保存了 90 分钟 - 我想保存 1 小时和 30 分钟。
我怎样才能用我的代码实现这一点?
我的架构:
Schema::create('working_times', function (Blueprint $table) {
$table->increments('id');
$table->integer('client_id')->unsigned();
$table->foreign('client_id')->references('id')->on('clients')->onDelete('cascade');
$table->integer('case_id')->unsigned();
$table->foreign('case_id')->references('id')->on('case_instances')->onDelete('cascade');
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->smallInteger('hours_worked');
$table->smallInteger('minutes_worked');
$table->string('name');
$table->string('appearance')->nullable();
$table->longText('description')->nullable();
$table->softDeletes();
$table->timestamps();
});
解决方案
这是一个粗略的解决方案,但不是这样做:
WorkingTime::create($this->request->all());
做:
$data = $this->request->all();
$hours = (int) $data['hours_worked'];
$minutes = (int) $data['minutes_worked'];
$overMinutes = $minutes % 60;
$hours += (int) (($minutes - $overMinutes) / 60);
$minutes = $overMinutes;
$data['hours_worked'] = $hours;
$data['minutes_worked'] = $minutes;
WorkingTime::create($data);
推荐阅读
- ios - ionic v3 build IOS 上传到应用商店时出现“UIWebView”错误
- git - Git Rebase Master 会影响本地 master 分支吗?
- python - 使用变量作为电子邮件正文发送电子邮件
- sql - 在数据库的多个列中搜索用户/客户输入信息的最佳方法是什么?
- sql - 查找内部联接的最大值 - SQL
- python-3.x - 使用梅尔谱图的罕见事件卷积神经网络
- python - 在访问设置之前无法修复错误 DJANGO_SETTINGS_MODULE 或调用 settings.configure()
- pandas - Pandas,数据框值“#-##”导出为 csv 中的日期
- c++ - 有没有办法让我在 C++ 中通配一个朋友类?
- r - 无法通过 R 使用 IBrokers 连接到 TWS