From 03f46a637d95e6bf246ed65b140b735a5ddfb0c0 Mon Sep 17 00:00:00 2001 From: Karson Date: Thu, 20 Apr 2023 01:58:34 +0000 Subject: [PATCH] =?UTF-8?q?!437=20=E8=A7=A3=E5=86=B3fast/Date::unixtime()?= =?UTF-8?q?=20=E6=8A=A5=E9=94=99=E9=9D=9E=E6=B3=95=E6=97=A5=E6=9C=9FBUG=20?= =?UTF-8?q?Merge=20pull=20request=20!437=20from=20bluehow/develop?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extend/fast/Date.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/extend/fast/Date.php b/extend/fast/Date.php index 84919255..ce018f1b 100644 --- a/extend/fast/Date.php +++ b/extend/fast/Date.php @@ -194,10 +194,14 @@ class Date $time = $position ? $_timestamp : mktime(23, 59, 59, $month + $offset, self::days_in_month(date("m", $_timestamp), date("Y", $_timestamp)), $year); break; case 'quarter': - $_month = date("m", mktime(0, 0, 0, (ceil(date('n', mktime(0, 0, 0, $month, $day, $year)) / 3) + $offset) * 3, $day, $year)); + $quarter = ceil(date('n', $baseTime) / 3) + $offset; + $month = $quarter * 3; + $offset_year = ceil($month/12) - 1; + $year = $year + $offset_year; + $month = $month - ($offset_year * 12); $time = $position ? - mktime(0, 0, 0, 1 + ((ceil(date('n', $baseTime) / 3) + $offset) - 1) * 3, 1, $year) : - mktime(23, 59, 59, (ceil(date('n', $baseTime) / 3) + $offset) * 3, self::days_in_month((ceil(date('n', $baseTime) / 3) + $offset) * 3, $year), $year); + mktime(0, 0, 0, $month-2, 1, $year) : + mktime(23, 59, 59, $month, self::days_in_month($month, $year), $year); break; case 'year': $time = $position ? mktime(0, 0, 0, 1, 1, $year + $offset) : mktime(23, 59, 59, 12, 31, $year + $offset);