summaryrefslogtreecommitdiff
path: root/ext/calendar/calendar.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/calendar/calendar.c')
-rw-r--r--ext/calendar/calendar.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/ext/calendar/calendar.c b/ext/calendar/calendar.c
index 1f92b9f2e0..fd487607ba 100644
--- a/ext/calendar/calendar.c
+++ b/ext/calendar/calendar.c
@@ -420,15 +420,21 @@ PHP_FUNCTION(cal_from_jd)
add_assoc_long(return_value, "year", year);
/* day of week */
- dow = DayOfWeek(jd);
- add_assoc_long(return_value, "dow", dow);
- add_assoc_string(return_value, "abbrevdayname", DayNameShort[dow], 1);
- add_assoc_string(return_value, "dayname", DayNameLong[dow], 1);
+ if (cal != CAL_JEWISH || year > 0) {
+ dow = DayOfWeek(jd);
+ add_assoc_long(return_value, "dow", dow);
+ add_assoc_string(return_value, "abbrevdayname", DayNameShort[dow], 1);
+ add_assoc_string(return_value, "dayname", DayNameLong[dow], 1);
+ } else {
+ add_assoc_null(return_value, "dow");
+ add_assoc_string(return_value, "abbrevdayname", "", 1);
+ add_assoc_string(return_value, "dayname", "", 1);
+ }
/* month name */
if(cal == CAL_JEWISH) {
/* special case for Jewish calendar */
- add_assoc_string(return_value, "abbrevmonth", JEWISH_MONTH_NAME(year)[month], 1);
- add_assoc_string(return_value, "monthname", JEWISH_MONTH_NAME(year)[month], 1);
+ add_assoc_string(return_value, "abbrevmonth", (year > 0 ? JEWISH_MONTH_NAME(year)[month] : ""), 1);
+ add_assoc_string(return_value, "monthname", (year > 0 ? JEWISH_MONTH_NAME(year)[month] : ""), 1);
} else {
add_assoc_string(return_value, "abbrevmonth", calendar->month_name_short[month], 1);
add_assoc_string(return_value, "monthname", calendar->month_name_long[month], 1);
@@ -741,7 +747,7 @@ PHP_FUNCTION(jdmonthname)
break;
case CAL_MONTH_JEWISH: /* jewish month */
SdnToJewish(julday, &year, &month, &day);
- monthname = JEWISH_MONTH_NAME(year)[month];
+ monthname = (year > 0 ? JEWISH_MONTH_NAME(year)[month] : "");
break;
case CAL_MONTH_FRENCH: /* french month */
SdnToFrench(julday, &year, &month, &day);