strtotime(“$firstDay + 1 month -1 day”) 這樣的寫法會有問題,大家可以去鳥哥部落格看看
令人困惑的strtotime
<?php
/**
* 獲取當天是本月的第幾周
*
* @return int
* @author Henry
*/
public function getWeek(): int
{
$todayW = date('W', strtotime('now')); //獲取當前週數
//$eomW = date('W', strtotime("$firstDay + 1 month -1 day")); 寫法有問題
$eomW = date('W', strtotime('last day of')); //獲取月尾週數
$weekSum = floor(date('t') / 7); //月份總天數 / 7 = 本月總週數
//本月總週數 - (本月尾週數 - 當前週數) + 1
$week = intval(($weekSum - ($eomW - $todayW)) + 1);
return $week;
}
/*
* 寫法不夠簡潔 v1.0
public function getWeekV1(): int
{
$totalDay = date('t'); //月份總天數
$today = date('Y-m-d'); //月份中的第幾天
$todayW = date('W', strtotime($today)); //獲取當前週數
$firstDay = date('Y-m-01'); //本月第一天
$eomW = date('W', strtotime("$firstDay + 1 month -1 day")); //這個月最後一天的週數
$weekSum = floor($totalDay / 7); //本月總週數
//本月總週數 - (本月尾週數 - 當前週數) + 1
$week = intval(($weekSum - ($eomW - $todayW)) + 1);
return $week;
}
*/
本作品採用《CC 協議》,轉載必須註明作者和本文連結