PHP随时间添加日期时间并获得时差

时间:2014-04-29 15:19:18

标签: php mysql datetime time

我有一个mysql datetime对象,我们称之为“购买日期”,就像2014-04-15 14:47:39一样。 我还有一个mysql时间对象,我们称之为“保质期”,就像168:00:00一样,这意味着产品在购买之后的保质期为168小时或七天。我想知道在此产品到期之前有多少天,使用以下公式(或类似的东西)

  

daysRemainingBeforeExpiring = [purchase_date(datetime)+ shelf_life(time)] - now(datetime)

如果我的公式错误,请纠正我,但我认为这应该返回此项目到期前的天数(如果已过期,则返回负数)。如何在PHP中的日期时间和时间对象上执行此数学运算?

1 个答案:

答案 0 :(得分:1)

$purchase_date = new DateTime('2014-04-15 14:47:39');
list($hours, $minutes, $seconds) = explode(':', '168:00:00');
$shelf_life    = new DateInterval("PT{$hours}H{$minutes}M{$seconds}S");
$expires_date  = $purchase_date->add($shelf_life); 
$now           = new DateTime();
$diff          = $now->diff($expires_date);
echo $diff->format('%r%d Days');

Demo