得到当前季度的日数很容易吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (27)

PHP提供了获取月份当前日期(日期(‘j’))和当前日期(日期(‘z’))的方法。有什么方法可以得到当前季度的当前天数吗?

比如,8月5日,是第三季度的第36天。

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

提问于
用户回答回答于

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

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'));
}
用户回答回答于

试试:

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

扫码关注云+社区