接收 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');
当我像下面这样传递数组时,程序工作正常:
$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');