From: Derick Rethans Date: Tue, 6 Dec 2011 06:04:24 +0000 (+0000) Subject: - Fixed bug #52062: large timestamps with DateTime::getTimestamp and DateTime::setTim... X-Git-Tag: php-5.5.0alpha1~766 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b2b7d5b94314e34f9b2a69e1b7e25aa7dd3e4a5c;p=php - Fixed bug #52062: large timestamps with DateTime::getTimestamp and DateTime::setTimestamp. --- diff --git a/ext/date/lib/parse_iso_intervals.c b/ext/date/lib/parse_iso_intervals.c index 3d8383b84d..a9a483861d 100644 --- a/ext/date/lib/parse_iso_intervals.c +++ b/ext/date/lib/parse_iso_intervals.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Sat Nov 13 14:56:07 2010 */ +/* Generated by re2c 0.13.5 on Mon Dec 5 22:02:35 2011 */ #line 1 "ext/date/lib/parse_iso_intervals.re" /* +----------------------------------------------------------------------+ @@ -396,7 +396,7 @@ yy6: break; } - nr = timelib_get_unsigned_nr((char **) &ptr, 9); + nr = timelib_get_unsigned_nr((char **) &ptr, 12); switch (*ptr) { case 'Y': s->period->y = nr; break; case 'W': s->period->d = nr * 7; break; diff --git a/ext/date/lib/parse_iso_intervals.re b/ext/date/lib/parse_iso_intervals.re index bf2c287276..8610803e39 100644 --- a/ext/date/lib/parse_iso_intervals.re +++ b/ext/date/lib/parse_iso_intervals.re @@ -364,7 +364,7 @@ isoweek = year4 "-"? "W" weekofyear; break; } - nr = timelib_get_unsigned_nr((char **) &ptr, 9); + nr = timelib_get_unsigned_nr((char **) &ptr, 12); switch (*ptr) { case 'Y': s->period->y = nr; break; case 'W': s->period->d = nr * 7; break; diff --git a/ext/date/tests/bug52062.phpt b/ext/date/tests/bug52062.phpt new file mode 100644 index 0000000000..ae8fbc381d --- /dev/null +++ b/ext/date/tests/bug52062.phpt @@ -0,0 +1,21 @@ +--TEST-- +Bug #52062: large timestamps with DateTime::getTimestamp and DateTime::setTimestamp +--FILE-- +format('Y-m-d H:i:s U')); +var_dump($d->getTimestamp()); + +$d->setTimestamp(100000000000); +var_dump($d->format('Y-m-d H:i:s U')); +var_dump($d->getTimestamp()); + +$i = new DateInterval('PT100000000000S'); +var_dump($i->format('%s')); +?> +--EXPECT-- +string(32) "5138-11-16 09:46:40 100000000000" +int(100000000000) +string(32) "5138-11-16 09:46:40 100000000000" +int(100000000000) +string(12) "100000000000"