我正在构建一个与Zapier WebHooks一起使用的脚本。在Gmail收到包含来自支付网关的特定主题和消息的电子邮件后,Zapier将向此脚本发送一个帖子请求。
无论如何,其中一个钩子是一个带有主题的消息"订阅被取消"。在收到此帖子请求后,我无法设置我的脚本以结束订阅,因为我需要保持客户端访问,直到他到达上一个付费期间的末尾(我有3个计划:1个月,6个月和1年的订阅,自动更新)。
网关发送的电子邮件附带的数据可让我了解首次购买订阅的时间,格式为:dd / mm / yyyy。
(对我而言,我到达那里......)
所以我有购买日期和取消日期(这是我的脚本收到帖子请求的那一天)。现在我怀疑:如何根据这两个日期设置我的脚本来定义EOT(期末)?
例如,假设客户已于03/02/2015购买了他的月份会员资格(年/月/日)。然后我的脚本被告知他于2015年3月29日取消。我可以将这2个日期存储在2个变量中:$purchaseDate
和$cancellationDate
。现在我需要设置我的PHP代码,以便它可以计算EOT($eotDate
),在这种情况下,即03/04/2015。
更具体:
1)如果是月订阅,$eotDate
将是$purchaseDate
之后的下一个$cancellationDate
天(上例中的第03天)。
2)如果订阅期为6个月,则$eotDate
将是距离$purchaseDate
6个月后$purchaseDate
天(上例中的第03天),因为它导致将来的日期。如果过去的结果日期是(是),我们可以假设有续订,因此$eotDate
将是距离{{1} 12个月之后的$purchaseDate
天(第03天) }。等等。
3)如果是1年订阅,$purchaseDate
将是距离$eotDate
12个月后$purchaseDate
天(上例中的第03天),因为它导致将来的日期。如果过去的结果日期是(是),我们可以假设有续订,因此$purchaseDate
将是距离{{1} 24个月之后的$eotDate
天(第03天) }。等等。
我还在学习PHP,因此我只能定义今天的日期和1年(或从今天开始的几天或几个月)。但首先我需要坚持取消日。我不知道怎么做,因为$purchaseDate
函数会给我当前日期(会不断变化)。
$purchaseDate
如你所见,我迷失了。
对于任何想要帮助的人,但认为任务太多,如果你只能帮助1号(月订阅),我将非常感激。
答案 0 :(得分:0)
您应该查看PHP中的DateTime docs
$now=new DateTime("now");
$cancelation_date=new DateTime("2016-04-03"); // A year from now