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