【问题标题】:Get day of the week for last 7 days?获取过去 7 天的星期几?
【发布时间】:2020-02-23 15:02:12
【问题描述】:

我需要一天的名称(星期一、星期二、星期三、星期四、星期五、星期六、今天)。

我知道这是一个新问题,PHP 有一个date() 函数。但我试过了,不知道怎么...

【问题讨论】:

  • 你到底想要怎样的日子?您的意见是什么?
  • 输入来自今天。如果这有任何意义?
  • 这是什么逻辑,请解释一下。
  • 只需将这些添加到数组中......!当你有一些实际的日期输入时使用date()...比如,2014 年 6 月 10 日是哪一天!那是你使用date()的时候
  • 好的,我只需要从“今天”开始的最后 7 天的名称。输出应该和上面提到的一样。

标签: php date


【解决方案1】:

根据http://php.net/manual/en/function.date.php的PHP手册,只需使用“l”作为格式参数即可获取当天的全名。

所以 2014 年 3 月 23 日是星期日,正如

<?php
echo date ("l", mktime(0, 0, 0, 3, 23, 2014));
// Echoes Sunday
?>

要获取从当天过去 7、6、5 或 10000 天(或未来的天数),根据this page 处的信息,只需在 strtotime 函数的字符串中使用负整数或正整数:

<?php
$backcount = -4;
echo date ("l", strtotime("$backcount day"));
// Executed on 23 Mar 2014 will give Wednesday
?>

了解这一点后,您可以应用 for 循环来获得所需的内容。而如果想要“Today”而不是当天的全名,只需添加一个if条件来处理backcount变量为零的情况。

【讨论】:

    【解决方案2】:

    使用DateTime 类及其format 方法实现此目的。

    以下代码的输出每天都在变化。由于今天是 星期日,它从星期一、星期二开始...如果您在 星期二 运行此代码,您将输出为 Thursday , Friday , Saturday .. 等等。

    <?php
    
    for($i=1;$i<=7;$i++) //<--- Since we know total days in a week is 7.
    {
        $date = new DateTime(); //<-- Grabs today's datetime
        $date->add(new DateInterval('P'.$i.'D')); //<--- Passes the current value of $i to add days..
        echo $date->format('l')."<br>";
    }
    

    OUTPUT :

    Monday
    Tuesday
    Wednesday
    Thursday
    Friday
    Saturday
    Sunday
    

    Working Demo

    【讨论】:

      【解决方案3】:

      您可以使用jddayofweek 来检索星期几,它有 3 种模式,包含星期几的字符串,包含缩写的星期几的字符串和 int 表示星期几

      for($i=0;$i<7;$i++){
          $x=jddayofweek($i,2);
          var_dump($x);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-22
        • 2021-11-27
        • 1970-01-01
        相关资源
        最近更新 更多