繁体   English   中英

获取过去 7 天的星期几?

[英]Get day of the week for last 7 days?

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

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

使用DateTime类及其format方法实现这一点。

下面代码的输出每天都在变化.. 因为今天是星期日,所以它从星期一、星期二开始......如果你在星期二运行这个代码,你将得到星期四、星期五、星期六的输出......依此类推。

<?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

工作演示

根据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 天(或未来的天数),根据此页面上的信息,只需在 strtotime 函数中的字符串中使用负整数或正整数:

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM