接收 strtotime() 期望参数 1 为字符串,对象在 php 中给出错误

Receiving strtotime() expects parameter 1 to be string, object given error in php

当我像下面这样传递数组时,程序工作正常:

$holidays=array("2015-01-01","2015-01-05","2015-01-10");

echo getWorkingDays("2015-01-02","2015-01-09",$holidays);

但是当我像这样从数据库中提取数据时:

$holidays = DB::table('tbl_holiday')->select('holiday_date')->whereBetween('holiday_date', array('2015-01-01', '2015-01-20'))->get();

我收到此错误:strtotime() 期望参数 1 为字符串,给定对象

在我的 helpers.php 中,我有这个代码

 foreach($holidays as $holiday){

       $time_stamp=strtotime($holiday);

      //If the holiday doesn't fall in weekend
      if ($startDate <= $time_stamp && $time_stamp <= $endDate && date("N",$time_stamp) != 6 )
      $workingDays--;
}

如有任何帮助,我们将不胜感激。

只需从 $holiday

获取实际的日期字符串
$timestamp = strtotime($holiday->holiday_date);

使用数据库查询,您的 $holidays 变量是一个 stdClass 对象数组。如果你想要一个只包含 holiday_date 值的数组,你可以使用 lists() 方法,而不是 get():

$holidays = DB::table('tbl_holiday')
    ->whereBetween('holiday_date', array('2015-01-01', '2015-01-20'))
    ->lists('holiday_date');