我正在尝试使用日期进行一些计算。代码正在从数据库中提取一些日期,这是我控制器中的一部分代码:
foreach ($tasks as $key => $value) {
print_r($tasks);
if ($key == 'start') {
$start_task = strtotime($value); \ problematic line
echo 'start task: '.$start_task.'<br />';
}
$task_elapsed = $start_hold - $start_task;
}
$tasks数组是数据库中记录中的一行,"start"字段是时间戳。 $start_hold 也是一个时间戳。
当它尝试执行时,我得到以下内容:
打印出的数组为:
Array ( [0] => stdClass Object ( [id] => 800 [serial] => 12 [process] => 4 [start] => 2014-03-03 10:18:22 etc...
我得到的错误是:
strtotime() expects parameter 1 to be string, object given
我不确定这里发生了什么。我正在尝试将时间戳转换为可以执行计算的格式。
谁能告诉我正确的方法?
替换此行
$start_task = strtotime($value);
跟
$start_task = strtotime($value->start);
如果$tasks是一个对象数组(如print_r所建议的那样),也许这应该有效:
foreach ($tasks as $object) {
foreach ($object as $key => $value) {
if ($key == 'start') {
$start_task = strtotime($value);
echo 'start task: '.$start_task.'<br />';
}
$task_elapsed = $start_hold - $start_task;
}
}