转换DateTime

时间:2015-08-11 14:53:21

标签: php datetime laravel fullcalendar

我在Angular中使用fullCalendar插件/指令,我在尝试将日期/时间保存到数据库时遇到问题。

这些是发布到我的服务器的值:

{"title":"Hey","start":"2015-08-13T00:00:00.000Z","end":"2015-08-13T00:00:00.000Z","allDay":true}

现在在我的控制器中,我尝试将日期/时间字符串转换为有效的日期/时间格式,然后保存到我的数据库中:

public function store(ScheduleRequest $request)
{
    $schedule = new Schedules;
    $schedule->allDay = $request->allDay;
    $schedule->start = strtotime(date('Y-m-d H:i:s', $request->start));
    $schedule->end = strtotime(date('Y-m-d H:i:s', $request->end));
    $schedule->title = $request->title;

    if ($schedule->save())
    {
        return [
            'success' => 'Data Was Saved Successfully'
        ];
    }
}

这是我得到的错误:

  

遇到非正确形成的数值

我想知道如何使用指定的格式将两个日期时间值转换为PHP中的有效日期时间对象。

3 个答案:

答案 0 :(得分:3)

strtotime正在将字符串转换为时间戳,而日期正在将时间戳转换为字符串,您需要使用strtotime反转日期,如下所示:

public function store(ScheduleRequest $request)
{
    $schedule = new Schedules;
    $schedule->allDay = $request->allDay;
    $schedule->start = date('Y-m-d H:i:s', strtotime($request->start));
    $schedule->end = date('Y-m-d H:i:s', strtotime($request->end));
    $schedule->title = $request->title;

    if ($schedule->save())
    {
        return [
            'success' => 'Data Was Saved Successfully'
        ];
    }
}

答案 1 :(得分:0)

编辑:对不起,strtotime没有按照我的想法做,看起来你想要DateTime :: createFromFormat从String创建一个DateTime对象,然后你可以从那里转到unix时间戳。

答案 2 :(得分:0)

添加strtotime($ mydateValue)为我修复了它。