From: Derick Rethans Date: Thu, 17 Jan 2008 20:45:08 +0000 (+0000) Subject: - MFH: Fixed bug #43075 (Support 2007-11-01T24:00:00+00:00). X-Git-Tag: RELEASE_1_3_1~345 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3d0797da2b1215d1f567220ec415b4f07f7a9e74;p=php - MFH: Fixed bug #43075 (Support 2007-11-01T24:00:00+00:00). --- diff --git a/NEWS b/NEWS index 405cada2ec..26952cd37d 100644 --- a/NEWS +++ b/NEWS @@ -80,6 +80,7 @@ PHP NEWS - Fixed bug #43808 (date_create never fails (even when it should)). (Derick) - Fixed bug #43527 (DateTime created from a timestamp reports environment timezone). (Derick) +- Fixed bug #43075 (Support 2007-11-01T24:00:00+00:00). (Derick) - Fixed bug #43003 (Invalid timezone reported for DateTime objects constructed using a timestamp). (Derick) - Fixed bug #43143 (Warning about empty IV with MCRYPT_MODE_ECB). (Derick) diff --git a/ext/date/lib/parse_date.c b/ext/date/lib/parse_date.c index 690888aa50..978159fbdd 100644 --- a/ext/date/lib/parse_date.c +++ b/ext/date/lib/parse_date.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.12.1 on Thu Jan 17 09:50:31 2008 */ +/* Generated by re2c 0.12.1 on Thu Jan 17 21:36:33 2008 */ #line 1 "ext/date/lib/parse_date.re" /* +----------------------------------------------------------------------+ @@ -1451,8 +1451,8 @@ yy15: case '0': case '1': case '2': - case '3': goto yy1238; - case '4': + case '3': + case '4': goto yy1238; case '5': case '6': case '7': @@ -5548,7 +5548,7 @@ yy318: if(yych == '.') goto yy371; goto yy308; } else { - if(yych <= '3') goto yy403; + if(yych <= '4') goto yy403; if(yych <= '9') goto yy400; if(yych <= ':') goto yy371; goto yy308; @@ -5630,7 +5630,7 @@ yy328: if(yych == '.') goto yy330; goto yy53; } else { - if(yych <= '3') goto yy329; + if(yych <= '4') goto yy329; if(yych == ':') goto yy330; goto yy53; } @@ -6013,7 +6013,7 @@ yy362: yych = *++YYCURSOR; if(yych <= '5') { if(yych <= '/') goto yy332; - if(yych >= '4') goto yy365; + if(yych >= '5') goto yy365; } else { if(yych <= '9') goto yy337; if(yych <= ':') goto yy364; @@ -6073,7 +6073,7 @@ yy368: if(yych == '.') goto yy371; goto yy308; } else { - if(yych <= '3') goto yy398; + if(yych <= '4') goto yy398; if(yych <= '9') goto yy370; if(yych <= ':') goto yy371; goto yy308; @@ -6633,7 +6633,7 @@ yy410: if(yych == '.') goto yy371; goto yy308; } else { - if(yych <= '3') goto yy413; + if(yych <= '4') goto yy413; if(yych <= '9') goto yy412; if(yych <= ':') goto yy371; goto yy308; @@ -6714,7 +6714,7 @@ yy417: if(yych == '.') goto yy420; goto yy308; } else { - if(yych <= '3') goto yy434; + if(yych <= '4') goto yy434; if(yych <= '9') goto yy433; if(yych <= ':') goto yy420; goto yy308; @@ -7210,7 +7210,7 @@ yy444: if(yych == '.') goto yy447; goto yy308; } else { - if(yych <= '3') goto yy458; + if(yych <= '4') goto yy458; if(yych <= '9') goto yy457; if(yych <= ':') goto yy447; goto yy308; @@ -11893,7 +11893,7 @@ yy641: if(yych <= 0x1F) goto yy3; goto yy57; } else { - if(yych <= '3') { + if(yych <= '4') { if(yych <= '/') goto yy3; goto yy662; } else { @@ -15000,7 +15000,7 @@ yy874: YYDEBUG(874, *YYCURSOR); yych = *++YYCURSOR; if(yych <= '/') goto yy53; - if(yych >= '4') goto yy53; + if(yych >= '5') goto yy53; yy875: YYDEBUG(875, *YYCURSOR); yych = *++YYCURSOR; @@ -15095,7 +15095,7 @@ yy888: yych = *++YYCURSOR; if(yych <= '5') { if(yych <= '/') goto yy887; - if(yych >= '4') goto yy891; + if(yych >= '5') goto yy891; } else { if(yych <= '9') goto yy892; if(yych <= ':') goto yy890; @@ -16359,7 +16359,7 @@ yy1012: YYDEBUG(1012, *YYCURSOR); yych = *++YYCURSOR; if(yych <= '/') goto yy53; - if(yych >= '4') goto yy53; + if(yych >= '5') goto yy53; yy1013: YYDEBUG(1013, *YYCURSOR); yych = *++YYCURSOR; @@ -16750,7 +16750,7 @@ yy1031: YYDEBUG(1031, *YYCURSOR); yych = *++YYCURSOR; if(yych <= '/') goto yy53; - if(yych <= '3') goto yy1037; + if(yych <= '4') goto yy1037; if(yych <= '5') goto yy1033; goto yy53; yy1032: @@ -16836,7 +16836,7 @@ yy1044: yych = *++YYCURSOR; if(yych <= '5') { if(yych <= '/') goto yy53; - if(yych <= '3') goto yy1052; + if(yych <= '4') goto yy1052; goto yy1033; } else { if(yych == ':') goto yy1046; @@ -17749,7 +17749,7 @@ yy1165: YYDEBUG(1165, *YYCURSOR); yych = *++YYCURSOR; if(yych <= '/') goto yy53; - if(yych <= '3') goto yy1166; + if(yych <= '4') goto yy1166; if(yych == ':') goto yy1167; goto yy53; yy1166: @@ -17918,7 +17918,7 @@ yy1182: YYDEBUG(1182, *YYCURSOR); yych = *++YYCURSOR; if(yych <= '/') goto yy53; - if(yych <= '3') goto yy1183; + if(yych <= '4') goto yy1183; if(yych == ':') goto yy1167; goto yy53; yy1183: @@ -18003,7 +18003,7 @@ yy1196: yych = *++YYCURSOR; if(yych <= '5') { if(yych <= '/') goto yy1021; - if(yych >= '4') goto yy1199; + if(yych >= '5') goto yy1199; } else { if(yych <= '9') goto yy1020; if(yych <= ':') goto yy1198; @@ -19528,7 +19528,7 @@ yy1283: if(yych == '.') goto yy1240; goto yy53; } else { - if(yych <= '3') goto yy1285; + if(yych <= '4') goto yy1285; if(yych == ':') goto yy1240; goto yy53; } diff --git a/ext/date/lib/parse_date.re b/ext/date/lib/parse_date.re index 986fc9ce63..7bcf4af602 100644 --- a/ext/date/lib/parse_date.re +++ b/ext/date/lib/parse_date.re @@ -836,8 +836,8 @@ frac = "."[0-9]+; ago = 'ago'; -hour24 = [01]?[0-9] | "2"[0-3]; -hour24lz = [01][0-9] | "2"[0-3]; +hour24 = [01]?[0-9] | "2"[0-4]; +hour24lz = [01][0-9] | "2"[0-4]; hour12 = "0"?[1-9] | "1"[0-2]; minute = [0-5]?[0-9]; minutelz = [0-5][0-9]; diff --git a/ext/date/tests/bug43075.phpt b/ext/date/tests/bug43075.phpt new file mode 100644 index 0000000000..98e01193e2 --- /dev/null +++ b/ext/date/tests/bug43075.phpt @@ -0,0 +1,9 @@ +--TEST-- +Bug #43075 (Support 24 as hour) +--FILE-- +format("c"); +?> +--EXPECT-- +2007-11-02T00:34:00+00:00