derick                                   Tue, 06 Dec 2011 06:04:24 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=320478

Log:
- Fixed bug #52062: large timestamps with DateTime::getTimestamp and 
DateTime::setTimestamp.

Bug: https://bugs.php.net/52062 (Assigned) large timestamps with 
DateTime::getTimestamp and DateTime::setTimestamp
      
Changed paths:
    U   php/php-src/branches/PHP_5_3/ext/date/lib/parse_iso_intervals.c
    U   php/php-src/branches/PHP_5_3/ext/date/lib/parse_iso_intervals.re
    A   php/php-src/branches/PHP_5_3/ext/date/tests/bug52062.phpt
    U   php/php-src/branches/PHP_5_4/ext/date/lib/parse_iso_intervals.c
    U   php/php-src/branches/PHP_5_4/ext/date/lib/parse_iso_intervals.re
    A   php/php-src/branches/PHP_5_4/ext/date/tests/bug52062.phpt
    U   php/php-src/trunk/ext/date/lib/parse_iso_intervals.c
    U   php/php-src/trunk/ext/date/lib/parse_iso_intervals.re
    A   php/php-src/trunk/ext/date/tests/bug52062.phpt

Modified: php/php-src/branches/PHP_5_3/ext/date/lib/parse_iso_intervals.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/date/lib/parse_iso_intervals.c     
2011-12-06 06:00:45 UTC (rev 320477)
+++ php/php-src/branches/PHP_5_3/ext/date/lib/parse_iso_intervals.c     
2011-12-06 06:04:24 UTC (rev 320478)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Sat Nov 13 14:57:59 2010 */
+/* Generated by re2c 0.13.5 on Mon Dec  5 22:02:31 2011 */
 #line 1 "ext/date/lib/parse_iso_intervals.re"
 /*
    +----------------------------------------------------------------------+
@@ -396,7 +396,7 @@
                                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;

Modified: php/php-src/branches/PHP_5_3/ext/date/lib/parse_iso_intervals.re
===================================================================
--- php/php-src/branches/PHP_5_3/ext/date/lib/parse_iso_intervals.re    
2011-12-06 06:00:45 UTC (rev 320477)
+++ php/php-src/branches/PHP_5_3/ext/date/lib/parse_iso_intervals.re    
2011-12-06 06:04:24 UTC (rev 320478)
@@ -364,7 +364,7 @@
                                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;

Added: php/php-src/branches/PHP_5_3/ext/date/tests/bug52062.phpt
===================================================================
--- php/php-src/branches/PHP_5_3/ext/date/tests/bug52062.phpt                   
        (rev 0)
+++ php/php-src/branches/PHP_5_3/ext/date/tests/bug52062.phpt   2011-12-06 
06:04:24 UTC (rev 320478)
@@ -0,0 +1,21 @@
+--TEST--
+Bug #52062: large timestamps with DateTime::getTimestamp and 
DateTime::setTimestamp
+--FILE--
+<?php
+$d = new DateTime('@100000000000');
+var_dump($d->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"

Modified: php/php-src/branches/PHP_5_4/ext/date/lib/parse_iso_intervals.c
===================================================================
--- php/php-src/branches/PHP_5_4/ext/date/lib/parse_iso_intervals.c     
2011-12-06 06:00:45 UTC (rev 320477)
+++ php/php-src/branches/PHP_5_4/ext/date/lib/parse_iso_intervals.c     
2011-12-06 06:04:24 UTC (rev 320478)
@@ -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:27 2011 */
 #line 1 "ext/date/lib/parse_iso_intervals.re"
 /*
    +----------------------------------------------------------------------+
@@ -396,7 +396,7 @@
                                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;

Modified: php/php-src/branches/PHP_5_4/ext/date/lib/parse_iso_intervals.re
===================================================================
--- php/php-src/branches/PHP_5_4/ext/date/lib/parse_iso_intervals.re    
2011-12-06 06:00:45 UTC (rev 320477)
+++ php/php-src/branches/PHP_5_4/ext/date/lib/parse_iso_intervals.re    
2011-12-06 06:04:24 UTC (rev 320478)
@@ -364,7 +364,7 @@
                                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;

Added: php/php-src/branches/PHP_5_4/ext/date/tests/bug52062.phpt
===================================================================
--- php/php-src/branches/PHP_5_4/ext/date/tests/bug52062.phpt                   
        (rev 0)
+++ php/php-src/branches/PHP_5_4/ext/date/tests/bug52062.phpt   2011-12-06 
06:04:24 UTC (rev 320478)
@@ -0,0 +1,21 @@
+--TEST--
+Bug #52062: large timestamps with DateTime::getTimestamp and 
DateTime::setTimestamp
+--FILE--
+<?php
+$d = new DateTime('@100000000000');
+var_dump($d->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"

Modified: php/php-src/trunk/ext/date/lib/parse_iso_intervals.c
===================================================================
--- php/php-src/trunk/ext/date/lib/parse_iso_intervals.c        2011-12-06 
06:00:45 UTC (rev 320477)
+++ php/php-src/trunk/ext/date/lib/parse_iso_intervals.c        2011-12-06 
06:04:24 UTC (rev 320478)
@@ -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 @@
                                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;

Modified: php/php-src/trunk/ext/date/lib/parse_iso_intervals.re
===================================================================
--- php/php-src/trunk/ext/date/lib/parse_iso_intervals.re       2011-12-06 
06:00:45 UTC (rev 320477)
+++ php/php-src/trunk/ext/date/lib/parse_iso_intervals.re       2011-12-06 
06:04:24 UTC (rev 320478)
@@ -364,7 +364,7 @@
                                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;

Added: php/php-src/trunk/ext/date/tests/bug52062.phpt
===================================================================
--- php/php-src/trunk/ext/date/tests/bug52062.phpt                              
(rev 0)
+++ php/php-src/trunk/ext/date/tests/bug52062.phpt      2011-12-06 06:04:24 UTC 
(rev 320478)
@@ -0,0 +1,21 @@
+--TEST--
+Bug #52062: large timestamps with DateTime::getTimestamp and 
DateTime::setTimestamp
+--FILE--
+<?php
+$d = new DateTime('@100000000000');
+var_dump($d->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"

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to