增加1个月的固定日期在Smarty 2.x,在WHMCS中显示距离该日期的剩余天数


Add 1 month to fixed date in Smarty 2.x & show days left to that date in WHMCS

我正在与WHMCS 5.3.x合作,Smarty 2.x IIRC。

例如{$service.regdate}渲染:

2015-06-01

我需要做的是在日期上加一个月:

2015-07-01

…然后我可以用:

|date_format:"%m/%d/%Y"

…以我想要的方式显示它

我已经尝试了很多基于谷歌结果的东西,比如:

{"+1 month $service.regdate"|date_format:"%m/%d/%Y"}
{strtotime("+1 month",$service.regdate)|date_format:"%m/%d/%Y"}

…还有一些其他不同的迭代,但输出通常只显示我的初始日期,或者什么都不显示。

我还需要生成$smarty的剩余天数。现在转到$service.regdate + 1 month,这样我就可以告诉我的客户还剩多少天了。

这方面的资料我还没有找到。

我知道你可以在PHP中完成大部分(如果不是全部),然后将其分配给Smarty变量,但是,我还没有找到一个有效的例子,如果你以前使用过WHMCS支持,他们并没有真正给你太多的东西,除了"ask the forums", "talk to modulesgarden""open a feature request"

Thank you =)

Sylvain是100%正确的,使用MySQL是正确的分辨率:

{php} $userid = $this->_tpl_vars['clientsdetails']['id']; $result = mysql_query(" SELECT *, DATE_ADD(tblhosting.regdate,INTERVAL 1 MONTH) as trialexpires, DATEDIFF(DATE_ADD(tblhosting.regdate,INTERVAL 1 MONTH),CURDATE()) as trialdaysleft FROM tblhosting,tblproducts WHERE userid = $userid AND tblhosting.packageid= tblproducts.id AND tblhosting.domainstatus='Active'" );
$services = array();
while ($data = mysql_fetch_array($result)) { array_push($services, $data); }
$this->_tpl_vars['services'] = $services; {/php}

Thank you =)