转换 DateTime 时遇到格式不正确的数值

A non well formed numeric value encountered when converting DateTime

我在 Angular 中使用 fullCalendar plugin/directive,目前在尝试将 date/time 保存到我的数据库时遇到问题。

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

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

现在在我的控制器中,我尝试将两个 date/time 字符串转换为有效的 date/time 格式,然后再保存到我的数据库中:

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'
        ];
    }
}

这是我得到的错误:

A non well formed numeric value encountered

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

编辑:抱歉,strtotime 没有像我想的那样做,看起来你想要 DateTime::createFromFormat 从字符串创建 DateTime 对象,然后你可以从那里转到 unix 时间戳。

strtotime 将字符串转换为时间戳,date 将时间戳转换为字符串,您需要像这样使用 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'
        ];
    }
}

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