Php 从星期几获取日期名称

Php 从星期几获取日期名称,php,cakephp,Php,Cakephp,我的mysql数据库中有7条记录 从0-6对应到一周中的每一天 现在我想显示我的PHP脚本,而不是0,“Sunday”,或者代替1显示“Monday” 是否有任何函数可以获取一周中的数字天数并返回一周的名称?构建一个包含天数的数组。然后你就可以通过索引来计算日期了 0-6=周日-周六 $daynum = 0; // assuming that's what was returned from the database. $dow = array('Sunday', 'Monday', 'Tues

我的mysql数据库中有7条记录 从0-6对应到一周中的每一天

现在我想显示我的PHP脚本,而不是0,“Sunday”,或者代替1显示“Monday”


是否有任何函数可以获取一周中的数字天数并返回一周的名称?

构建一个包含天数的数组。然后你就可以通过索引来计算日期了

0-6=周日-周六

$daynum = 0; // assuming that's what was returned from the database.
$dow = array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
echo $dow[$daynum]; // would echo Sunday

这需要一个枚举。PHP一般不支持枚举,但有一个用于枚举的SPL库,使用它是不安全的,因为服务器可能没有安装它

另一种方法是对一周中的几天使用数字数组:

$daysOfWeek = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday",];

现在正在调用
$daysOfWeek[$x%7]
返回当天的字符串(%7用于避开超出范围的索引)。

您可以使用date函数,格式为
l

l(小写字母“l”)

一周中某一天的完整文本表示

并使用周日为0的事实:

echo date('l', strtotime("Sunday +{$day_number} days"));
或者作为一种功能:

function getDayNameFromDayNumber($day_number) {
    return date('l', strtotime("Sunday +{$day_number} days"));
}

最简单的方法是使用数组。你应该使用0-6之间的数字——这是个好主意

$number_of_day = 6; //OR DIFFERNT - it depends what you need
$day_array = array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
$day_array[$number_of_day];

在变量$day_数组中[$number_of_day];您有小时输出。

您可以编写一个助手并将日期传递给它。它将在您需要的所有视图中提供:
echo$this->MyHelper->changeNumToDate($num)
既然你用的是return,你就不需要休息了,但这是我的习惯

class MyHelper extends Helper {
    function changeNumToDate($num = null){
        Switch($num){
            Case 0:
                return 'Sunday';
                break;
            Case 1:
                return 'Monday';
                break;
            Case 2:
                return 'Tuesday';
                break;
            Case 3:
                return 'Wednesday';
                break;
            Case 4:
                return 'Thursday';
                break;
            Case 5:
                return 'Friday';
                break;
            default:
                return 'Saturday';

        }
    }
}

从星期日到星期六,或从星期日到星期六,从星期日到星期六,从星期日到星期六

//For example, our target numeric day is 0 (Sunday):
$numericDay = 0; //assuming current date('w')==0 and date('D')=='Sun';
解决方案-1:使用PHP的内置函数,该函数从
星期一开始
,而
日期('w')
星期日开始

jddayofweek($numericDay-1, 1); //returns 'Sun', here decreasing by '-1' is important(!)
//jddayofweek(0, 1); //returns 'Mon';
//jddayofweek(0, 2); //returns 'Monday';
解决方案-2:使用技巧:

date('D', strtotime("Sunday +{$numericDay} days")); //returns 'Sun';
//date('l', strtotime("Sunday +{$numericDay} days")); //returns 'Sunday';

如果row等于零,echo Sunday
那么我必须添加7个if,这是编写代码的更好方法吗?基本上是的<代码>while($row=mysqli_fetch_array($query){if($row['date']==0){echo“Sunday”}…}类型的东西。我肯定还有其他方法,例如使用
case/switch
就是一种。或者使用
switch
将代码缩短一点。