将数字转换为星期几

时间:2015-04-21 12:57:10

标签: php date time

我需要将数字转换为日期,即

1 -> Sunday
2 -> Monday

我有以下问题,这有助于反对:day of the week to day number (Monday = 1, Tuesday = 2)

一旦我能够做到这一点,我可以循环通过并回显当天,即:

while($i < 7)
{
    echo date("N",strtotime(1));
}

我正在寻找的所有东西似乎都是要求将一天转换为数字的人。有人可以指出我正确的方向

2 个答案:

答案 0 :(得分:7)

使用星期几作为关键字,将日期放在数组中。然后使用date('N')获取星期几,并使用它作为键访问该数组值。

$days = [
  1 => 'Sunday',
  2 => 'Monday',
  3 => 'Tuesday',
  4 => 'Wednesday',
  5 => 'Thursday',
  6 => 'Friday',
  7 => 'Saturday'
];

echo $days[date('N')];

答案 1 :(得分:-1)

您只需要创建一个数组来执行此操作,请检查:

$dayOfWeek = array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
echo $dayOfWeek[2]."<br />";
echo $dayOfWeek[8%7];
echo $dayOfWeek[date('N')];

为什么我写这样的数组?索引0 => "Sunday" and 1 => "Monday" ....?因为如果有一天你必须做到这一点1 week is 7 day,那么你可以使用"Modulo / %(in php)"来转换它。

例如: 如果2015年3月1日是星期日,那么第8天必须是星期一because 8 mod 7 is 1 or 8%7 (in php) is 1。所以要转换它,你只需执行此$dayOfWeek[8%7]即可获得dayOfWeek。 :)

对于另一个有条件的情况,你需要你的逻辑来做到这一点。如果2015年5月1日是星期五。请记住,检查一年是否知道2月份的天数是28或29。

如何检查?请试试这个:

$year = 2015;
$feb = (($year%100)and !($year%4)or !($year%400))+28;
echo $feb;

日复一日应该是这样的:

$month= array(0,31,$feb,31,30,31,30,31,31,30,31,30,31);

0=0, 1=January,2=February,....

希望这可以帮助你.. :)