Patch add-date-quarter-support for Date/time related Bug #34932
Patch version 2013-04-01 15:50 UTC
Return to Bug #34932 |
Download this patch
Patch Revisions:
Developer: programming@stefan-koch.name
From 7eaa0a8d93d2db369dfedcc59f1ac7d03211f2da Mon Sep 17 00:00:00 2001
From: Stefan Koch <taikano@lavabit.com>
Date: Mon, 1 Apr 2013 11:40:26 +0200
Subject: [PATCH] added support for quarter of year in date(), see #34932
---
ext/date/lib/dow.c | 5 +++++
ext/date/php_date.c | 1 +
2 files changed, 6 insertions(+)
diff --git a/ext/date/lib/dow.c b/ext/date/lib/dow.c
index b6c2d69..bbeb925 100644
--- a/ext/date/lib/dow.c
+++ b/ext/date/lib/dow.c
@@ -140,6 +140,11 @@ timelib_sll timelib_daynr_from_weeknr(timelib_sll y, timelib_sll w, timelib_sll
return day + ((w - 1) * 7) + d;
}
+timelib_sll timelib_quarter_of_year(timelib_sll m)
+{
+ return (m - 1) / 3 + 1;
+}
+
int timelib_valid_time(timelib_sll h, timelib_sll i, timelib_sll s)
{
if (h < 0 || h > 23 || i < 0 || i > 59 || s < 0 || s > 59) {
diff --git a/ext/date/php_date.c b/ext/date/php_date.c
index 4ef3143..0ac0f34 100644
--- a/ext/date/php_date.c
+++ b/ext/date/php_date.c
@@ -1105,6 +1105,7 @@ static char *date_format(char *format, int format_len, timelib_time *t, int loca
case 't': length = slprintf(buffer, 32, "%d", (int) timelib_days_in_month(t->y, t->m)); break;
/* year */
+ case 'Q': length = slprintf(buffer, 32, "%d", (int) timelib_quarter_of_year(t->m)); break;
case 'L': length = slprintf(buffer, 32, "%d", timelib_is_leap((int) t->y)); break;
case 'y': length = slprintf(buffer, 32, "%02d", (int) t->y % 100); break;
case 'Y': length = slprintf(buffer, 32, "%s%04lld", t->y < 0 ? "-" : "", php_date_llabs((timelib_sll) t->y)); break;
--
1.8.2
|