From: Derick Rethans Date: Thu, 21 Jul 2005 10:09:40 +0000 (+0000) Subject: - Changed the year parameter so that 0..69 maps to 2000..2069 and 70..100 maps X-Git-Tag: RELEASE_0_9~45 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8a3d3aefbb1fcdf539fa62a735d296e06fafe3e5;p=php - Changed the year parameter so that 0..69 maps to 2000..2069 and 70..100 maps to 1970..2000, which was in the original code, but not in the documentation. --- diff --git a/ext/date/php_date.c b/ext/date/php_date.c index 1878b9106f..f5c4730ed1 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -623,6 +623,11 @@ PHPAPI void php_mktime(INTERNAL_FUNCTION_PARAMETERS, int gmt) case 7: /* break intentionally missing */ case 6: + if (yea >= 0 && yea < 70) { + yea += 2000; + } else if (yea >= 70 && yea <= 100) { + yea += 1900; + } now->y = yea; /* break intentionally missing again */ case 5: diff --git a/ext/date/tests/mktime-3.phpt b/ext/date/tests/mktime-3.phpt new file mode 100644 index 0000000000..d4ccfbabe4 --- /dev/null +++ b/ext/date/tests/mktime-3.phpt @@ -0,0 +1,52 @@ +--TEST-- +mktime() [3] +--INI-- +error_reporting=2047 +--FILE-- + +--EXPECT-- +America/Toronto +Y: 0 - January 2000-01-01T01:01:01-0500 +Y: 69 - out of range +Y: 70 - January 1970-01-01T01:01:01-0500 +Y: 71 - January 1971-01-01T01:01:01-0500 +Y: 99 - January 1999-01-01T01:01:01-0500 +Y: 100 - January 2000-01-01T01:01:01-0500 +Y: 1900 - out of range +Y: 1901 - out of range +Y: 1902 - January 1902-01-01T01:01:01-0500 +Y: 1999 - January 1999-01-01T01:01:01-0500 +Y: 2000 - January 2000-01-01T01:01:01-0500 +Y: 2001 - January 2001-01-01T01:01:01-0500 + +Europe/Oslo +Y: 0 - January 2000-01-01T01:01:01+0100 +Y: 69 - out of range +Y: 70 - January 1970-01-01T01:01:01+0100 +Y: 71 - January 1971-01-01T01:01:01+0100 +Y: 99 - January 1999-01-01T01:01:01+0100 +Y: 100 - January 2000-01-01T01:01:01+0100 +Y: 1900 - out of range +Y: 1901 - out of range +Y: 1902 - January 1902-01-01T01:01:01+0100 +Y: 1999 - January 1999-01-01T01:01:01+0100 +Y: 2000 - January 2000-01-01T01:01:01+0100 +Y: 2001 - January 2001-01-01T01:01:01+0100