2014-06-19 116 views
1

首先在任何人写它之前,我知道有很多关于它的话题,我已经检查了很多它们,但没有任何东西适合我。我只需要从date_out中减去日期,这很容易在PHP 5.3中,但我在某人的服务器上,并不能更新它...日期在这两个字段是格式化像这样(2014年6月2日16时43分47秒)PHP 5.2.17日期时间差

实例下正常工作,因为它是(我发现它的地方堆栈)

$start = new DateTime('2010-10-12'); 
$end = new DateTime(); 
$days = round(($end->format('U') - $start->format('U'))/(60*60*24)); 

但是当我改变$开始和$结束从我的DB数据,最后一行$ days抛出一个错误( - >格式('U'))似乎是一个问题。这怎么解决?

(端之间的区别/开始绝不会一个多小时的更大最多)

+0

尝试使用碳这样的东西:https://github.com/briannesbitt/Carbon#api-difference – Arda

+2

@JohnConde *咳嗽* 5.2.17 *咳嗽* – DaveRandom

+0

@DaveRandom我试着在codeviper上使用5.2.17的John粘贴,结果是1346,如果这是期望的最终结果。 http://codepad.viper-7.com/TLLKyk –

回答

1

我终于想通了!

$date_inA = $sql_array[3]; 
$date_inB = new DateTime($date_inA); 
$date_outA = $sql_array[4]; 
$date_outB = new DateTime($date_outA); 

$diff = round(($date_outB->format('U') - $date_inB->format('U'))/(60*60*24)); 

我需要字符串对象的值更改为DateTime对象,我认为这是已经在DB日期时间的对象......

+1

太好了。 +1很高兴听到它。干杯 –