日期函数的PHP问题

时间:2012-02-16 12:30:08

标签: php sql debugging datetime

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%,但当我执行不工作。

我尝试过'睡觉',但也不行。

我该怎么办?这很奇怪,因为我无法找到错误,因为当我调试所有工作时:/

1 个答案:

答案 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.