将日期选择器的值保存到Laravel数据库中

7

我在表单中有这个输入框... 我需要存储从中选择的日期,但是当我提交时得到了一个空值。

<script type="text/javascript">
   $(function() {
       $( "#datepicker" ).datepicker();
   });
</script>

<input type="text" required="" placeholder="When are You Coming Back" name="datepicker2"  id="datepicker2" value="" name="datepicker2" class="txt">

我有什么遗漏吗??当我提交时,数据库中没有任何值,我正在使用laravel5

class LeaveController extends Controller
{
     public function ApplyLeave(Request $request)
    {

        Auth::user()->sent()->create([
            'tel'       => $request->tel,
            'email'    => $request->email,
            'start' => $request->datepicker,
            'end'       => $request->datepicker1,
            'supervisor'    => $request->supervisor,
            'department' => $request->department,
            'name'    => $request->name,
            'adress' => $request->adress,
        ]);   
        return view('home');
   }

你的控制器中相关的代码在哪里? - Ohgodwhy
@Ohgodwhy 我已经用我的控制器编辑了这个问题。 - Sir George
您的输入名称为datepicker2,但在请求对象中,您使用了没有数字和数字1的调用。 - Sysix
3个回答

14

日期解析应该正常工作:

'start' => Carbon::parse($request->datepicker),
'end' => Carbon::parse($request->datepicker1),

同时,将startend添加到$dates数组中是一个好主意。


类 'App\Http\Controllers\Carbon' 未找到错误。 - Sir George
我该如何获取它?我该如何打印输出? - Sir George
01/06/2017选定日期后,它的样子是这样的。 - Sir George
如果我在数据库中检查我的列,它会显示为NULL。我的数据类型在数据库中是"date"。 - Sir George
1
我明白了,谢谢大家。我非常感激 Stack Overflow,再次感谢。 - Sir George
显示剩余5条评论

1

您需要将日期转换为数据库接受的格式,例如 Y-m-d,即 2017-01-19

在存储到数据库之前尝试进行转换

例如,

public function ApplyLeave(Request $request){

    Auth::user()->sent()->create([
        'tel'       => $request->tel,
        'email'    => $request->email,
        'start' => date("Y-m-d", strtotime($request->datepicker)),
        'end'       => date("Y-m-d", strtotime($request->datepicker1)),
        'supervisor'    => $request->supervisor,
        'department' => $request->department,
        'name'    => $request->name,
        'adress' => $request->adress,
    ]);   
    return view('home');
}

还是空的..是因为我将默认值设置为null了吗? - Sir George
只需打印$request->datepicker$request->datepicker1的值并提交,这样我们可以更好地帮助您。 - Jaymin Panchal

1

使用strtotime()函数将第一个日期转换为时间戳,然后使用date('Y-m-d')将其转换回日期格式:

$time = strtotime('10/16/2003');

$newformat = date('Y-m-d',$time);

echo $newformat;

// 2003-10-16

将字符串转换为日期和日期时间


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接