2012-10-31 42 views
-6

可能重复:
add one year to datetime with phpPHP日期时间,支付日期+一年任期

支付日期:2012-10-19 13:13:20

期限:3(三年)

我我需要将这两个值转换为DateTime然后与今天的日期进行比较,并确定订阅是否要续约。

不知道如何正确地做到这一点...

我已经试过:

$term = $row['term']; 
$paid = $row['paid_date']; 

$renew = strtotime("+$term years", $paid); 
$today = strtotime('now'); 

但很显然,在这种情况下,所有日期均小于...

+0

谁投下来是呼吸完全是浪费。感谢您的帮助... – dcolumbus

+0

我觉得有趣的是,您的第一次尝试乘以'$ term'(我没有降低您的评分) – Alexander

+0

是的,这很搞笑。我其实并没有尝试......这只是我需要完成的一个例子 – dcolumbus

回答

0

如果你有支付日期为一个字符串:

if(strtotime("2012-10-19 13:13:20 +3 years") > time()) { 
    // expired 
} 

如果您已支付日期作为时间戳:

if(strtotime("+3 years", $paidDate) > time()) { 
    // expired 
} 
+0

我已更新我的问题 – dcolumbus

+1

假设paid_date是MySQL日期时间且term是整数,则足以使用strtotime(“{$ row ['paid_date']} + {$ row ['' ']}年“)。 –

+0

这样做。谢谢你帮助我,萨尔曼。 – dcolumbus

0

关闭日期转换为时间戳,并将其与今天的时间戳进行比较;如果差异超过3年,则订阅用完。

0

将付费+ 3年和今天转换为unix timestmp,如果续约日期小于今天,则订阅已过期。

$renew = strtotime('+'. $term .' years', $paid); 
$today = strtotime('now'); 

If ($renew < $today) 
{ 
    //subscription has run out 
} 

假定$术语是从数据库的整数,$支付是从MySQL数据库转换为UNIX时间戳的日期时间(选择UNIX_TIMESTAMP(支付)作为从paidtable支付)。

+0

我已更新我的问题 – dcolumbus

相关问题