From 40dd6dfb4e9b1270058bf8357f0c38429acd07bc Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Tue, 29 Nov 2005 20:48:44 +0000 Subject: [PATCH] Added missing support for 'B' format identifier to date() function. --- ext/date/php_date.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ext/date/php_date.c b/ext/date/php_date.c index 681495e5b5..7b4f672463 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -587,7 +587,15 @@ static char *date_format(char *format, int format_len, int *return_len, timelib_ /* time */ case 'a': length = date_spprintf(&buffer, 32 TSRMLS_CC, "%R", localized ? IS_UNICODE : IS_STRING, am_pm_lower_full(t->h >= 12 ? 1 : 0, localized)); break; case 'A': length = date_spprintf(&buffer, 32 TSRMLS_CC, "%R", localized ? IS_UNICODE : IS_STRING, am_pm_upper_full(t->h >= 12 ? 1 : 0, localized)); break; - case 'B': length = date_spprintf(&buffer, 32 TSRMLS_CC, "[B unimplemented]"); break; + case 'B': { + int retval = (((((long)t->sse)-(((long)t->sse) - ((((long)t->sse) % 86400) + 3600))) * 10) / 864); + while (retval < 0) { + retval += 1000; + } + retval = retval % 1000; + date_spprintf(&buffer, 32 TSRMLS_CC, "%03d", retval); + break; + } case 'g': length = date_spprintf(&buffer, 32 TSRMLS_CC, "%d", (t->h % 12) ? (int) t->h % 12 : 12); break; case 'G': length = date_spprintf(&buffer, 32 TSRMLS_CC, "%d", (int) t->h); break; case 'h': length = date_spprintf(&buffer, 32 TSRMLS_CC, "%02d", (t->h % 12) ? (int) t->h % 12 : 12); break; -- 2.40.0