1--TEST--
2Test strptime() function : basic functionality
3--SKIPIF--
4<?php
5	if (!function_exists('strptime')) {
6		die("skip - strptime() function not available in this build");
7	}
8        if(PHP_OS == 'Darwin') die("skip - strptime() behaves differently on Darwin");
9?>
10--FILE--
11<?php
12/* Prototype  : array strptime  ( string $date  , string $format  )
13 * Description:  Parse a time/date generated with strftime()
14 * Source code: ext/standard/datetime.c
15*/
16
17$orig = setlocale(LC_ALL, 'C');
18date_default_timezone_set("GMT");
19
20echo "*** Testing strptime() : basic functionality ***\n";
21
22$input = "10:00:00 AM July 2 1963";
23$tstamp = strtotime($input);
24
25$str = strftime("%r %B%e %Y %Z", $tstamp);
26var_dump(strptime($str, '%H:%M:%S %p %B %d %Y'));
27
28$str = strftime("%T %D", $tstamp);
29var_dump(strptime($str, '%H:%M:%S %m/%d/%y'));
30
31$str = strftime("%A %B %e %R", $tstamp);
32var_dump(strptime($str, '%A %B %e %R'));
33
34setlocale(LC_ALL, $orig);
35?>
36===DONE===
37--EXPECTF--
38*** Testing strptime() : basic functionality ***
39array(9) {
40  ["tm_sec"]=>
41  int(0)
42  ["tm_min"]=>
43  int(0)
44  ["tm_hour"]=>
45  int(10)
46  ["tm_mday"]=>
47  int(2)
48  ["tm_mon"]=>
49  int(6)
50  ["tm_year"]=>
51  int(63)
52  ["tm_wday"]=>
53  int(2)
54  ["tm_yday"]=>
55  int(182)
56  ["unparsed"]=>
57  string(4) " GMT"
58}
59array(9) {
60  ["tm_sec"]=>
61  int(0)
62  ["tm_min"]=>
63  int(0)
64  ["tm_hour"]=>
65  int(10)
66  ["tm_mday"]=>
67  int(2)
68  ["tm_mon"]=>
69  int(6)
70  ["tm_year"]=>
71  int(163)
72  ["tm_wday"]=>
73  int(1)
74  ["tm_yday"]=>
75  int(182)
76  ["unparsed"]=>
77  string(0) ""
78}
79array(9) {
80  ["tm_sec"]=>
81  int(0)
82  ["tm_min"]=>
83  int(0)
84  ["tm_hour"]=>
85  int(10)
86  ["tm_mday"]=>
87  int(2)
88  ["tm_mon"]=>
89  int(6)
90  ["tm_year"]=>
91  int(0)
92  ["tm_wday"]=>
93  int(2)
94  ["tm_yday"]=>
95  int(182)
96  ["unparsed"]=>
97  string(0) ""
98}
99===DONE===
100