global $adb;
$sql = 'SELECT * from vtiger_invoice where invoiceid = ?';
$result = $adb->pquery($sql,array($_REQUEST['record']));
$fecha=$adb->query_result($result,$i,'invoicedate');
for($i=0;$i<sizeof($vencimientos);$i++)
{
$date[$i] = date_create($fecha);
date_add($date[$i], date_interval_create_from_date_string($periodicidad.' days'));
$fechafinal = explode(" ",$date[$i]->date);
$splitdate = explode("-",$fechafinal[0]);
$reversedate = array_reverse($splitdate);
$fechafinal = implode("-",$reversedate);
$pdf->MultiCell(100, $summaryCellHeight , $fechafinal, '', 'L', 0, 1, $summaryLineX+135, $summaryLineY);
$summaryLineY += 4;
}
问题是这段代码不起作用,或者至少$ fechafinal没有获得价值。当我调试时,所有工作100%,但当我执行不工作。
我尝试过'睡觉',但也不行。
我该怎么办?这很奇怪,因为我无法找到错误,因为当我调试所有工作时:/
答案 0 :(得分:1)
我认为问题可能出在这一行:
$fechafinal = explode(" ",$date[$i]->date);
DateTime对象没有任何公共成员日期,因此您不会在那里获得任何字符串。你想要使用的是format()。
使用format()您可以替换这四行:
$fechafinal = explode(" ",$date[$i]->date);
$splitdate = explode("-",$fechafinal[0]);
$reversedate = array_reverse($splitdate);
$fechafinal = implode("-",$reversedate);
使用:
$fechafinal = $date[$i]->format('d-m-Y'); // Change the formatting to what you need.