代码之家  ›  专栏  ›  技术社区  ›  Marco Assunção

Laravel-Carbon-分析提取月份的日期时间时出错

  •  1
  • Marco Assunção  · 技术社区  · 8 年前

    这里需要一些帮助。 我要说的是,这可能很容易回答,但我不是一名程序员,在没有学习php基础知识的情况下就开始使用laravel开发应用程序。

    所以,我使用Carbon来解析datetime,提取其中的月份,我得到了一些错误。 下面是我要分析的内容:

     DB::table('task_interactions')->whereIn('task_id', $tasksKc)->pluck('created_at') 
    

    我在一个查询中这样做:

    ->where(Carbon::parse(DB::table('task_interactions')->whereIn('task_id', $tasksKc)->pluck('created_at'))->month,'=', $december)
    

    我得到的错误是:

    Exception in Carbon.php line 291:
    DateTime::__construct(): Failed to parse time string (["2017-12-07 10:03:12",....
    

    进行了一些搜索,发现问题是“”并且我必须修剪字符串,如下所示:

    where(Carbon::parse(trim(DB::table('task_interactions')->whereIn('task_id', $tasksKc)->pluck('created_at'),'"'))->month,'=', $december)
    

    ... 得到了同样的错误。 因此,我已经将查询隔离到视图中的dd(),但仍然无法理解出了什么问题。 如果我在视图中添加此

    $test = DB::table('task_interactions')->whereIn('task_id', $tasksKc)->pluck('created_at');
    

    我得到:

    Collection {#460 ▼
      #items: array:657 [▼
        0 => "2017-12-07 10:03:12"
        1 => "2017-12-07 10:03:46"
        2 => "2017-12-07 10:04:20"
        3 => "2017-12-07 10:05:08"
        4 => "2017-12-07 10:06:29"
        5 => "2017-12-07 10:07:39"
        6 => "2017-12-07 10:09:58"
        7 => "2017-12-07 10:13:25"
        8 => "2017-12-07 10:13:57"
        9 => "2017-12-07 10:14:28"
        10 => "2017-12-07 10:15:10".....
    

    如果我添加这个:

    $test = trim(DB::table('task_interactions')->whereIn('task_id', $tasksKc)->pluck('created_at'),'"');
    

    我得到:

    "["2017-12-07 10:03:12","2017-12-07 10:03:46","2017-12-07 10:04:20","2017-12-07 10:05:08","2017-12-07 10:06:29","2017-12-07 10:07:39","2017-12-07 10:09:58","2017 ▶"
    

    有什么线索吗?

    提前感谢

    1 回复  |  直到 8 年前
        1
  •  1
  •   Alexey Mezenin    8 年前

    您可以在查询中执行此操作。使用 whereMonth() 方法:

    ->whereMonth('created_at', 12)