繁体   English   中英

从星期几获取日期名称

[英]Getting Day name from day of week

我的 mysql 数据库中有 7 条记录,每条记录都对应于 0-6 的星期几

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

是否有任何函数可以使用星期几并返回星期几的名称?

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

l(小写'L')

星期几的全文表示

http://php.net/manual/en/function.date.php

并使用周日为 0 的事实:

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

或者作为一个函数:

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

构建一个包含天数的数组。 然后您可以通过索引调用当天。

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 是为了逃避超出范围的索引)。

最简单的方法是使用数组。 你应该使用 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_array[$number_of_day] 中; 你有小时输出。

0一周的数字天获得周日到周六周日到周六以6:

//For example, our target numeric day is 0 (Sunday):
$numericDay = 0; //assuming current date('w')==0 and date('D')=='Sun';

解决方案 1:使用 PHP 的内置函数jddayofweek()Monday开始,而date('w')Sunday开始:

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';

您可以编写一个助手并将日期传递给它。 它可以在您需要的任何地方的所有视图中使用: echo $this->MyHelper->changeNumToDate($num)由于您使用的是 return,您实际上不需要 break,但它是我的习惯。

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';

        }
    }
}

暂无
暂无

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

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