【问题标题】:Change week dynamic in PHP for listview在 PHP 中为 listview 更改周动态
【发布时间】:2021-09-08 13:29:52
【问题描述】:

我想创建一个列表,其中显示一周,每天的值显示在当天的部分中。

首先,我尝试创建动态周更改,以便您可以按一个按钮来显示前一周或下一周。 现在我有了这段代码,在输出中我有一个星期从星期日到星期六。

现在这是我的问题,因为我总是将星期日作为第一天,输出的一周也总是从星期日开始,所以是实际一周的前一周。 我试图用date('n') 中的date('N') 更改变量$dow 中的星期输出。不幸的是,这不起作用。

如何更改我的代码以显示/输出从星期一到星期日的正确星期?

注意:在0 上的$ts += 0 * 86400 * 7; 下,您可以更改从当前周开始的星期。

$ts = date(strtotime('last monday'));
$ts += 0 * 86400 * 7;
$dow = date('N' , $ts);
$offset = $dow;

//the output is currently only for testing
$ts = $ts - $offset * 86400;
$week = date('W', $ts);
echo "<p>$week</p>";
for ($x=0 ; $x<7 ; $x++,$ts += 86400) {
    echo '<p>' . date("d.m.Y", $ts) . '</p>' ;
}

输出到代码和当前周

【问题讨论】:

  • 我不完全理解您的问题,但是您是否尝试过简单地使用 strtotime() 而不是添加 0 * 86400 * 7; ?您可以使用date(strtotime($day . ' + . $x . ' days')) 并且每次只增加一天
  • 不要重新发明轮子 - 请参阅 fullcalendar.io
  • @ADyson 我知道全日历,我也使用它。对于这种情况,不幸的是,这不是一个选择,因为这不是古典意义上的日历
  • @Dave 代码有效,但输出周是从周日到周六,而不是从周一到周日,这使得周一到周六的周数不再合适。

标签: php date


【解决方案1】:

试试更简单的,像这样?

<?php
$currentDate = date('d.m.Y', strtotime('last monday'));
for ($x=0 ; $x<7 ; $x++) {
    echo '<p>' . $currentDate . '</p>' ;
    $currentDate = date("d.m.Y", strtotime($currentDate . ' +1 day'));
}

【讨论】:

  • 谢谢,我只是想得太复杂了
猜你喜欢
  • 1970-01-01
  • 2015-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多