根据不适当的开始日期(并非总是星期日)获取星期几的名称

时间:2019-04-12 20:35:20

标签: php

我知道在PHP中我可以使用date函数来获取星期几的名称。但是,我遇到的问题是一个天气API,该API返回5天的天气,以TODAY作为数组中的第一个位置。

我可以使用下面的代码,但是我想知道是否有更干净的方法。

下面的代码从新的开始日期到数组的结尾对数组进行切片,然后将数组的开头剪断,然后将它们合并在一起。

传递给该函数的第一个参数是星期的任意开始,第二个参数是我尝试获取的“新星期”的一天。

function get_day_name($start, $get_day){
        $days = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];

        $array_start = array_slice($days,$start);
        $array_end = array_splice($days,0,$start);

        $days = array_merge($array_start,$array_end);

        return $days[$get_day];
    }

echo get_day_name(date("w"), 0);

3 个答案:

答案 0 :(得分:1)

您可以在当天使用date("l"),在下一天使用date("l", strtotime("+1 day")),等等。

,或者对象(new \DateTime())->format('l')用于当前对象,(new \DateTime('+1 day'))->format('l')用于下一个对象,等等。

答案 1 :(得分:1)

您可以使用标准的\Datetime库和当前语言环境来显示工作日的名称。
使用l as a format,您可以从星期日开始工作。

只需将日期字符串传递到构造函数中,然后在创建的对象上调用format方法。与strtotime相比,这是一个更好的解决方案,因为它以更高的精度和正确性来处理日期。

$dayOfWeek = (new \DateTime($dateString))->format('l');

答案 2 :(得分:0)

如果您知道日期,为什么不使用它?

$dayOfWeek = date("l", strtotime($dateHere));