-->

.mktime和返回星期的错误的一天.strftime帮助(.mktime and .strftim

2019-11-02 20:33发布

在我得到大声呵斥我不是一个PHP编码,我已搜查变化巨资,试图弄清楚这一点没有运气在这里和在网络上。 我已经看到了一些东西,但只是没有足够的理解与我有限的了解申请。 PHP代码是由人谁也消失了发展,所以不支持,我有一个小错误,我需要尝试和清理,为什么一个HTML / CSS的家伙甚至试图弄清楚这一点,没有多少运气。 所以,欣赏群体的帮助和耐心以及特异性如果可能的话。

问题:PHP代码返回周的错一天一统计报表软件生成。 所以当你去运行统计页面,它查询它返回一个值,但在错误的一天标签显示了DB。

在我的测试情况下,我只在每月的周四公布的数据,当我运行报表只显示为周日的数据。

下面是什么我以为是从我的研究的代码两个部分..而不是发布整个PHP文件。 我想至少我觉得我缩小了代码段...小的胜利。

用于获取月的第一天的代码是(我已经看到了那里,并进行比较,看起来是正确的):

    function get_first_day($day_number=1, $month=false, $year=false)
{
  $month  = ($month === false) ? strftime("%m"): $month;
  $year   = ($year === false) ? strftime("%Y"): $year;

  $first_day = 1 + ((7+$day_number - strftime("%w", mktime(0,0,0,$month, 1, $year)))%7);

  return mktime(0,0,0,$month, $first_day, $year);
}

我去我之前也试图$ DAY_NUMBER = 1设置为不同的值0-6,但似乎没有任何效果。 我看了几个帖子,设置这个值是问题,但并没有区别我。 我想,也许“会话”试图了解他们后导致了问题,所以我试图注销并重新登录清空缓存并更改值后也改变浏览器但我并没有好处。

我猜你会说,调用此代码??? 生成输出报告是不正确的是:

<table id="graph_weekday" class="data" style="display:none" cellpadding="0" cellspacing="0" width="100%">
        <caption><?php echo _occupancy_per_week." / "._days;?></caption>
        <thead>
            <tr>
                <td class="no_input">&nbsp;</td>
                <?php
                foreach ($label_wk as $value) {
                    echo "<th>".strftime("%A", get_first_day($value, $_SESSION['statistic_month'], $_SESSION['selectedDate_year']))."</th>";
                }
                ?>
            </tr>
        </thead>
        <tbody>
            <tr>
                <th><?php echo _days;?></th>
                <?php
                foreach ($data_wk as $value) {
                    echo "<td>".$value."</td>";
                }
                ?>
            </tr>
        </tbody>
    </table>
                    }
                    ?>

这样的事情似乎是工作抠数据,但标签是错误的。 虽然设置$ DAY_NUMBER值=别的东西似乎并没有工作。

是不是有什么毛病。$值。 这被呼应,我需要的get_first_day适用于价值?

更新:试图挖成这样,但还是需要帮助,我发现这个代码中,我认为也是relivent(也许)

// Bar Plot Guest by weekday/month
$data_wk = array();
$label_wk = array();

    $statistic = querySQL('statistic_weekday');

    foreach ($statistic as $key => $value) {
        foreach($value as $paxsum){
            $label_wk[] = $key;
            $data_wk[] = $paxsum;
        }
    }

谢谢你的帮助。

Answer 1:

好吧,我想我有它。 我改变了价值$ DAY_NUMBER = 1到不同的号码。 当我改变$ FIRST_DAY = 5似乎工作我没有改变$ FIRST_DAY = 1。 这是否看起来是正确的还是要引起我的其他问题?

  function get_first_day($day_number=1, $month=false, $year=false)
  {
    $month  = ($month === false) ? strftime("%m"): $month;
    $year   = ($year === false) ? strftime("%Y"): $year;

    $first_day = 5 + ((7+$day_number - strftime("%w", mktime(0,0,0,$month, 1, $year)))%7);

    return mktime(0,0,0,$month, $first_day, $year);
  }


文章来源: .mktime and .strftime help returning wrong day of week