2013-07-08 168 views
0

我想检查时间戳是否在我网站用户的结算周期范围内。例如如何计算结算周期的日期php范围?

如果我的用户在03/07/2012注册。我想知道他的结算周期是否在一个月内超过三次。例如如果有一天(2013年9月4日)他试图提出要约,我必须找到他的范围。

我已经存储了一个时间戳与他在mysql数据库中的注册时间。我试图使用mktime,但我不能管理函数

+0

你尝试过什么吗? –

+0

很好。祝你好运。 –

+0

而不是使用mktime,如果你有一个理智的格式日期只是时间 – Orangepill

回答

1

如果我确定了你的权限,你知道何时用户已经注册,如果现在(或在任何其他日期)他做出一些行动,你需要知道日期帐单月份的开始和结束?

像,如果我已在2012-02-04上注册,那么目前我的帐单月份是2013-07-04 - 2013-08-04

看看这个:

$registerDate = '2012-05-04'; 
$date = '2013-04-15'; 

$from = strtotime($registerDate); 
$to = strtotime($date); 

$interval = date_diff(date_create(date('Y-m-d H:i:s', $from)), date_create(date('Y-m-d H:i:s', $to))); 

$billingMonthStart = strtotime($interval->format('-%d days'), $to); 
$billingMonthEnd = strtotime('+1 month', $billingMonthStart); 

所以,现在如果我跑

var_dump(@date('Y-m-d', $billingMonthStart), @date('Y-m-d', $billingMonthEnd)); 

我会得到这样的结果:

string(10) "2013-04-04" 
string(10) "2013-05-04" 

难道这就是你的意思?

+0

这是一个很好的答案,但它不能正常工作。它在一个月前给我看。 – roxeman3

+0

您能否提供您想要在月份包装的注册日期和日期,以便我可以检查? –

+0

对不起,它工作得很好。一位朋友测试了它,他告诉我这一点。我自己再试一次,一切都好 – roxeman3