一、打印
array ( 0 => '2022-09-05~2022-09-11', 1 => '2022-09-12~2022-09-18', 2 => '2022-09-19~2022-09-25', )
1662307200 1664121599
1663516800 1664121599
星期四
38
二、代码
<?php
class Demo
{
public function test()
{
$result = self::getMoreWeeks('2022-09-22');
var_export($result);
echo '<br/>';
list($startUnix, $endUnix) = self::getWeeksUnix(['2022-09-08', '2022-09-15', '2022-09-22']);
echo $startUnix . ' ' . $endUnix . ' <br/>';
list($startUnix, $endUnix) = self::getOneWeekUnix('2022-09-22');
echo $startUnix . ' ' . $endUnix . ' <br/>';
$week = self::getWeekByDay('2022-09-22');
echo $week . '<br/>';
$weekNumber = self::getWeekNumber('2022-09-22');
echo $weekNumber . '<br/>';
}
public function getMoreWeeks($day, $number = 3)
{
$dateUnix = strtotime($day);
$result = [];
for ($i = 0; $i < $number; $i++) {
$startDay = date("Y-m-d", strtotime("this week Monday", $dateUnix));
$endDay = date("Y-m-d", strtotime("this week Sunday", $dateUnix));
$beforeDay = "{$startDay}~{$endDay}";
array_unshift($result, $beforeDay);
$dateUnix -= (86400 * 7);
}
return $result;
}
public function getWeeksUnix($days)
{
$startTime = $days[0] . ' 00:00:00';
list($startUnix, $notUse) = self::getOneWeekUnix($startTime);
$endTime = end($days) . ' 23:59:59';
list($notUse, $endUnix) = self::getOneWeekUnix($endTime);
return [$startUnix, $endUnix];
}
public function getOneWeekUnix($day)
{
$startDay = date("Y-m-d 00:00:00", strtotime("this week Monday", strtotime($day)));
$endDay = date("Y-m-d 23:59:59", strtotime("this week Sunday", strtotime($day)));
$startUnix = strtotime($startDay);
$endUnix = strtotime($endDay);
return [$startUnix, $endUnix];
}
public function getWeekByDay($day)
{
$weekArray = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
return $weekArray[date("w", strtotime($day))];
}
public function getWeekNumber($day)
{
$weekNumber = date("W", strtotime($day));
return $weekNumber;
}
}
三、姊妹篇