在这里,我想组合两个输入字段,如何将date_start
和我的time
组合成laravel中的单个值。 (我的字段类型:datetime)
以下是我的观看脚本:
<div class="form-group date" style="float: left;">
<label for="">Date</label>
<input class="form-control tanggal" id="date" name="date_start"
placeholder="YYYY-MM-DD" type="text" required />
</div>
<div class="form-group time" style="float: right;">
<label for="">Time</label>
<input type="time" name="time" placeholder="what time"
class="form-control" id="time" />
</div>
这是我的控制者:
$a['date_start'] = Session::get('date_start'). Session::get('time');
我一直试着运行它,我得到像这样的结果数组,
Array ( [date_start] => 2016-08-1001:00 )
我认为它是正确的,但在我的数据库中仍为0000-00-00 00:00:00
我必须对代码进行哪些改进才能实现我的目标?
答案 0 :(得分:2)
正如您已经发布的那样
我认为它的权利,但在我的数据库中仍然是00:00:00
你的输入是0000-00-0000:00,这是完全不同的。
您可以使用Carbon使这更容易一点,并确保正确解析日期。
$dateString = Session::get('date_start') . ' ' . Session::get('time') . ':00';
$date = new \Carbon\Carbon($dateString); // optional second parameter for timezone
参考http://carbon.nesbot.com/docs/ Laravel开箱即用。您也可以添加
use Carbon\Carbon;
在最顶层,每次都要跳过写作\ Carbon \ Carbon。
答案 1 :(得分:0)
我认为主要问题是您尝试使用Session#get
来尝试阅读发布的表单值,该Request#input
从会话中检索数据,而不是从表单本身检索数据的use Carbon\Carbon;
class MyController extends Controller
{
public function postMethodName(Request $request)
{
$a = [];
$date_start = $request->input('date_start');
$time = $request->input('time');
// TODO: Add validation, sanitize, etc.
$combined = sprintf('%s %s', $date_start, $time);
$a['date_start'] = $combined; // new Carbon($combined);
}
}
。
要检索表单输入值,请参阅https://laravel.com/docs/5.2/requests#retrieving-input:
例如:
$(".ui-layout-center").each(function() {
$(this).parent().layout({
applyDefaultStyles : true
});
});