获取当前季度的日数的简单方法?

2022-08-30 17:18:56

PHP 提供了获取月份当前日期(date('j'))以及一年中当前日期(date('z'))的数量的方法。有没有办法获取当前季度当前日期的数字?

所以现在,8月5日,是第三季度的第36天。

如果没有标准的计算方法,是否有人有一个(最好是基于PHP的)算法?


答案 1

怎么样:

$curMonth = date("m", time());
$curQuarter = ceil($curMonth/3);

答案 2

我使用以下方法编写了一个类。享受。

public static function getQuarterByMonth($monthNumber) {
  return floor(($monthNumber - 1) / 3) + 1;
}

public static function getQuarterDay($monthNumber, $dayNumber, $yearNumber) {
  $quarterDayNumber = 0;
  $dayCountByMonth = array();

  $startMonthNumber = ((self::getQuarterByMonth($monthNumber) - 1) * 3) + 1;

  // Calculate the number of days in each month.
  for ($i=1; $i<=12; $i++) {
    $dayCountByMonth[$i] = date("t", strtotime($yearNumber . "-" . $i . "-01"));
  }

  for ($i=$startMonthNumber; $i<=$monthNumber-1; $i++) {
    $quarterDayNumber += $dayCountByMonth[$i];
  }

  $quarterDayNumber += $dayNumber;

  return $quarterDayNumber;
}

public static function getCurrentQuarterDay() {
  return self::getQuarterDay(date('n'), date('j'), date('Y'));
}

推荐