php-src/ext/standard/tests/time/strptime_basic.phpt
Remi Collet 018b9445da Fix failed test with recent glibc
In recent version of strptime glibc upstream has fixed a discrepancy between
documentation and actual behaviour by skipping over the sequence that would match %Z.
See ddc7e412ab

So when %Z is used in format
glibc <= 2.18 returns the GMT as unparsed
glibc >= 2.19 returns empty string

Removing %Z from tested format gives the same behavior with all version.
2013-11-13 13:19:10 +01:00

101 lines
1.7 KiB
PHP

--TEST--
Test strptime() function : basic functionality
--SKIPIF--
<?php
if (!function_exists('strptime')) {
die("skip - strptime() function not available in this build");
}
if(PHP_OS == 'Darwin') die("skip - strptime() behaves differently on Darwin");
?>
--FILE--
<?php
/* Prototype : array strptime ( string $date , string $format )
* Description: Parse a time/date generated with strftime()
* Source code: ext/standard/datetime.c
*/
$orig = setlocale(LC_ALL, 'C');
date_default_timezone_set("GMT");
echo "*** Testing strptime() : basic functionality ***\n";
$input = "10:00:00 AM July 2 1963";
$tstamp = strtotime($input);
$str = strftime("%r %B%e %Y %Z", $tstamp);
var_dump(strptime($str, '%H:%M:%S %p %B %d %Y'));
$str = strftime("%T %D", $tstamp);
var_dump(strptime($str, '%H:%M:%S %m/%d/%y'));
$str = strftime("%A %B %e %R", $tstamp);
var_dump(strptime($str, '%A %B %e %R'));
setlocale(LC_ALL, $orig);
?>
===DONE===
--EXPECTF--
*** Testing strptime() : basic functionality ***
array(9) {
["tm_sec"]=>
int(0)
["tm_min"]=>
int(0)
["tm_hour"]=>
int(10)
["tm_mday"]=>
int(2)
["tm_mon"]=>
int(6)
["tm_year"]=>
int(63)
["tm_wday"]=>
int(2)
["tm_yday"]=>
int(182)
["unparsed"]=>
string(4) " GMT"
}
array(9) {
["tm_sec"]=>
int(0)
["tm_min"]=>
int(0)
["tm_hour"]=>
int(10)
["tm_mday"]=>
int(2)
["tm_mon"]=>
int(6)
["tm_year"]=>
int(163)
["tm_wday"]=>
int(1)
["tm_yday"]=>
int(182)
["unparsed"]=>
string(0) ""
}
array(9) {
["tm_sec"]=>
int(0)
["tm_min"]=>
int(0)
["tm_hour"]=>
int(10)
["tm_mday"]=>
int(2)
["tm_mon"]=>
int(6)
["tm_year"]=>
int(0)
["tm_wday"]=>
int(2)
["tm_yday"]=>
int(182)
["unparsed"]=>
string(0) ""
}
===DONE===