【问题标题】:Smarty if statement with date & date = month > to show results带有日期和日期 = 月份 > 的 Smarty if 语句以显示结果
【发布时间】:2016-01-11 21:20:29
【问题描述】:

我从数组中获得了表格,并且在不同的日期获得了许多金额 $$$。

例子:

-08/10/2015 |金额:2500$
-19/10/2015 |金额:1000 美元
-20/11/2015 |金额:500 美元
-27/11/2015 |金额:720 美元
-30/12/2015 |金额:100 美元
-31/12/2015 |金额:250美元

我目前在 smarty 模板中的代码是:

                {foreach from=$referrals item=referral}
                    {if $referral.date eq "08/10/2015"}
                            {assign var="sum" value="`$sum+$referral.amount`"}
                    {/if}
                {/foreach}
                    <td>{$sum|number_format:2:",":"."} ден.</td>
                {assign var="sum" value=0}

我只得到日期的总金额:08/10/2015

我的问题是如何获取整个 10 月 (10) 月或整个 11 月 (11) 月以及以月份分隔的全年的总金额,并且仅适用于非0(零),因为我也有这样的数量?

这是我的数组(包含超过 136 个数组):

Smarty_Variable Object (3)
->value = Array (137)
  0 => Array (11)
    id => "1514"
    date => "05/01/2016"
    service => "Рамка со податоци"
    package => "Рамка со податоци"
    userid => "500"
    amount => "0.00"
    billingcycle => "One Time"
    amountdesc => "0,00 ден. One Time"
    commission => "0,00 ден."
    lastpaid => "Never"
    status => "Active"
  1 => Array (11)
    id => "1515"
    date => "05/01/2016"
    service => "Лого со податоци"
    package => "Лого со податоци"
    userid => "500"
    amount => "0.00"
    billingcycle => "One Time"
    amountdesc => "0,00 ден. One Time"
    commission => "0,00 ден."
    lastpaid => "Never"
    status => "Active"
  2 => Array (11)
    id => "1496"
    date => "29/12/2015"
    service => "Рамка со податоци"
    package => "Рамка со податоци"
    userid => "493"
    amount => "0.00"
    billingcycle => "One Time"
    amountdesc => "0,00 ден. One Time"
    commission => "0,00 ден."
    lastpaid => "Never"
    status => "Active"
  3 => Array (11)
    id => "1497"
    date => "29/12/2015"
    service => "Лого со податоци"
    package => "Лого со податоци"
    userid => "493"
    amount => "0.00"
    billingcycle => "One Time"
    amountdesc => "0,00 ден. One Time"
    commission => "0,00 ден."
    lastpaid => "Never"
    status => "Active"
  4 => Array (11)
    id => "1498"
    date => "29/12/2015"
    service => "Реклама во црно-бела техника на 1/6 -..."
    package => "Реклама во црно-бела техника на 1/6 -..."
    userid => "493"
    amount => "0.00"
    billingcycle => "One Time"
    amountdesc => "0,00 ден. One Time"
    commission => "0,00 ден."
    lastpaid => "Never"
    status => "Active"
  5 => Array (11)
    id => "1500"
    date => "29/12/2015"
    service => "Лого и мапа на www.abv.mk"
    package => "Лого и мапа на www.abv.mk"
    userid => "493"
    amount => "0.00"
    billingcycle => "One Time"
    amountdesc => "0,00 ден. One Time"
    commission => "0,00 ден."
    lastpaid => "Never"
    status => "Active"

【问题讨论】:

  • 只需在常规 php 中执行此操作,然后使用变量将结果发送给 Smarty。 Smarty 是一个模板系统,它不应该用于如此复杂的操作
  • 我同意 Borgtex - 如果您使用 WHMCS v6(WHMCS > 设置 > 常规设置 > 安全选项卡),请务必启用 Smarty PHP 标签。然后你可以在模板中使用 {php} {/php} 来做你想做的事。当然,理想情况下,您会在 hooks 文件夹中添加一个钩子来执行此操作,但我离题了。
  • 我可以尝试你提到的两件事,但问题是我不是真正的 php 程序员,这就是我寻求帮助的原因:) @muely2k1

标签: php date smarty whmcs smarty3


【解决方案1】:
*//sum for october month*

{assign var="sum" value=0}

{foreach from=$referrals item=referral}

  {if $referral.date|date_format:"%m" == 10 && $referral.amount != 0}

     {assign var="sum" value=$sum+$referral.amount}

  {/if}

{/foreach}

*//display sum*

{$sum|number_format:2:",":"."}

【讨论】:

  • 如果您在代码中添加一些描述以指出这如何解决 OP 的问题,那就太好了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多