在Smarty 2.x&添加1个月到固定日期在WHMCS

时间:2015-08-06 12:46:17

标签: php datetime smarty whmcs

我正在使用WHMCS 5.3.x Smarty 2.x IIRC。

因此,例如{$service.regdate}呈现:

2015-06-01

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

2015-07-01

...然后我可以格式化:

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

...按照我想要的方式显示它。

我根据Google的搜索结果做了很多尝试:

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

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

...以及其他一些不同的迭代,但输出通常只呈现我的初始日期或根本没有。

我还需要生成从$ smarty.now到$service.regdate + 1 month的剩余天数,以便向客户展示剩下的天数。

我没有找到差不多的信息。

我知道你可以在PHP中做大部分(如果不是全部),然后将其分配给Smarty变量,但是,我没有找到一个有效的例子,如果你之前曾经使用过WHMCS支持,他们就不会除了"ask the forums""talk to modulesgarden""open a feature request"

之外,你真的给了你很多东西。

谢谢=)

1 个答案:

答案 0 :(得分:1)

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}

谢谢=)