-24 :20-01-2038
-23 :20-02-2038
-22 :20-03-2038
-21 :20-04-2038
-20 :20-05-2038
-19 :20-06-2038
-18 :20-07-2038
-17 :20-08-2038
-16 :20-09-2038
-15 :20-10-2038
-14 :20-11-2038
-13 :20-12-2038
-12 :20-01-2039
-11 :20-02-2039
-10 :20-03-2039
-9 :20-04-2039
-8 :20-05-2039
-7 :20-06-2039
-6 :20-07-2039
-5 :20-08-2039
-4 :20-09-2039
-3 :20-10-2039
-2 :20-11-2039
-1 :20-12-2039
0 :20-01-2040
1 :20-02-2040
2 :20-03-2040
3 :20-04-2040
4 :20-05-2040
5 :20-06-2040
6 :20-07-2040
7 :20-08-2040
8 :20-09-2040
9 :20-10-2040
10 :20-11-2040
11 :20-12-2040
12 :20-01-2041
13 :20-02-2041
14 :20-03-2041
15 :20-04-2041
16 :20-05-2041
17 :20-06-2041
18 :20-07-2041
19 :20-08-2041
20 :20-09-2041
21 :20-10-2041
22 :20-11-2041
23 :20-12-2041
24 :20-01-2042

Testing adodb_date and adodb_mktime. version=0.35 PHP=7.3.33

adodb: 2025-04-19 14:21:31
php : 2025-04-19 14:21:31

Testing gregorian <=> julian conversion

-12219382800 -12219296400 15 Oct 1582, Fri=Fri
4 Oct 1582, Thu=Thu

Testing overflow

Testing 2-digit => 4-digit year conversion

Err 2-digit 1940
Err 2-digit 1950

Testing date formating

4:53:00 am AM 31 Sat July 4 4 04 04 53 31 Saturday 1 07 Jul 7 +0100 RFC2822 Sat, 31 Jul 1976 04:53:00 +0100 00 31 207633180 6 76 1976 212 3600 2003 Error date(): 207633180
  "date +01 1976-07-31 04:53:00 am AM 31 Sat July 4 4 04 04 53 31 Saturday 1 07 Jul 7 +0100 RFC2822 Sat, 31 Jul 1976 04:53:00 +0100 00 31 207633180 6 76 1976 212 3600 2003" (date len=168)
  "date +01 1976-07-31 03:53:00 am AM 31 Sat July 3 3 03 03 53 31 Saturday 1 07 Jul 7 +0000 RFC2822 Sat, 31 Jul 1976 03:53:00 +0000 00 31 207633180 6 76 1976 212 0 2003" (adodb_date len=165)

Error getdate() 207633180
Array ( [seconds] => 0 [minutes] => 53 [hours] => 4 [mday] => 31 [wday] => 6 [mon] => 7 [year] => 1976 [yday] => 212 [weekday] => Saturday [month] => July [0] => 207633180 )
Array ( [seconds] => 0 [minutes] => 53 [hours] => 3 [mday] => 31 [wday] => 6 [mon] => 7 [year] => 1976 [yday] => 212 [weekday] => Saturday [month] => July [0] => 207633180 )

8:41:29 am AM 16 Fri September 8 8 08 08 41 16 Friday 0 09 Sep 9 +0100 RFC2822 Fri, 16 Sep 1977 08:41:29 +0100 29 30 243243689 5 77 1977 258 3600 2003 Error date(): 243243689

  "date +01 1977-09-16 08:41:29 am AM 16 Fri September 8 8 08 08 41 16 Friday 0 09 Sep 9 +0100 RFC2822 Fri, 16 Sep 1977 08:41:29 +0100 29 30 243243689 5 77 1977 258 3600 2003" (date len=171)
  "date +01 1977-09-16 07:41:29 am AM 16 Fri September 7 7 07 07 41 16 Friday 0 09 Sep 9 +0000 RFC2822 Fri, 16 Sep 1977 07:41:29 +0000 29 30 243243689 5 77 1977 258 0 2003" (adodb_date len=168)

Error getdate() 243243689
Array ( [seconds] => 29 [minutes] => 41 [hours] => 8 [mday] => 16 [wday] => 5 [mon] => 9 [year] => 1977 [yday] => 258 [weekday] => Friday [month] => September [0] => 243243689 )
Array ( [seconds] => 29 [minutes] => 41 [hours] => 7 [mday] => 16 [wday] => 5 [mon] => 9 [year] => 1977 [yday] => 258 [weekday] => Friday [month] => September [0] => 243243689 )

6:58:20 pm PM 25 Thu August 4 16 04 16 58 25 Thursday 0 08 Aug 8 +0100 RFC2822 Thu, 25 Aug 1977 16:58:20 +0100 20 31 241372700 4 77 1977 236 3600 2003 Error date(): 241372700

  "date +01 1977-08-25 16:58:20 pm PM 25 Thu August 4 16 04 16 58 25 Thursday 0 08 Aug 8 +0100 RFC2822 Thu, 25 Aug 1977 16:58:20 +0100 20 31 241372700 4 77 1977 236 3600 2003" (date len=171)
  "date +01 1977-08-25 15:58:20 pm PM 25 Thu August 3 15 03 15 58 25 Thursday 0 08 Aug 8 +0000 RFC2822 Thu, 25 Aug 1977 15:58:20 +0000 20 31 241372700 4 77 1977 236 0 2003" (adodb_date len=168)

Error getdate() 241372700
Array ( [seconds] => 20 [minutes] => 58 [hours] => 16 [mday] => 25 [wday] => 4 [mon] => 8 [year] => 1977 [yday] => 236 [weekday] => Thursday [month] => August [0] => 241372700 )
Array ( [seconds] => 20 [minutes] => 58 [hours] => 15 [mday] => 25 [wday] => 4 [mon] => 8 [year] => 1977 [yday] => 236 [weekday] => Thursday [month] => August [0] => 241372700 )

5:13:51 pm PM 06 Sat August 3 15 03 15 13 6 Saturday 0 08 Aug 8 +0100 RFC2822 Sat, 06 Aug 1977 15:13:51 +0100 51 31 239724831 6 77 1977 217 3600 2003 Error date(): 239724831

  "date +01 1977-08-06 15:13:51 pm PM 06 Sat August 3 15 03 15 13 6 Saturday 0 08 Aug 8 +0100 RFC2822 Sat, 06 Aug 1977 15:13:51 +0100 51 31 239724831 6 77 1977 217 3600 2003" (date len=170)
  "date +01 1977-08-06 14:13:51 pm PM 06 Sat August 2 14 02 14 13 6 Saturday 0 08 Aug 8 +0000 RFC2822 Sat, 06 Aug 1977 14:13:51 +0000 51 31 239724831 6 77 1977 217 0 2003" (adodb_date len=167)

Error getdate() 239724831
Array ( [seconds] => 51 [minutes] => 13 [hours] => 15 [mday] => 6 [wday] => 6 [mon] => 8 [year] => 1977 [yday] => 217 [weekday] => Saturday [month] => August [0] => 239724831 )
Array ( [seconds] => 51 [minutes] => 13 [hours] => 14 [mday] => 6 [wday] => 6 [mon] => 8 [year] => 1977 [yday] => 217 [weekday] => Saturday [month] => August [0] => 239724831 )

3:19:26 pm PM 23 Fri July 1 13 01 13 19 23 Friday 1 07 Jul 7 +0100 RFC2822 Fri, 23 Jul 1976 13:19:26 +0100 26 31 206972366 5 76 1976 204 3600 2003 Error date(): 206972366

  "date +01 1976-07-23 13:19:26 pm PM 23 Fri July 1 13 01 13 19 23 Friday 1 07 Jul 7 +0100 RFC2822 Fri, 23 Jul 1976 13:19:26 +0100 26 31 206972366 5 76 1976 204 3600 2003" (date len=167)
  "date +01 1976-07-23 12:19:26 pm PM 23 Fri July 12 12 12 12 19 23 Friday 1 07 Jul 7 +0000 RFC2822 Fri, 23 Jul 1976 12:19:26 +0000 26 31 206972366 5 76 1976 204 0 2003" (adodb_date len=165)

Error getdate() 206972366
Array ( [seconds] => 26 [minutes] => 19 [hours] => 13 [mday] => 23 [wday] => 5 [mon] => 7 [year] => 1976 [yday] => 204 [weekday] => Friday [month] => July [0] => 206972366 )
Array ( [seconds] => 26 [minutes] => 19 [hours] => 12 [mday] => 23 [wday] => 5 [mon] => 7 [year] => 1976 [yday] => 204 [weekday] => Friday [month] => July [0] => 206972366 )

4:01:39 am AM 28 Tue June 4 4 04 04 01 28 Tuesday 0 06 Jun 6 +0100 RFC2822 Tue, 28 Jun 1977 04:01:39 +0100 39 30 236314899 2 77 1977 178 3600 2003 Error date(): 236314899

  "date +01 1977-06-28 04:01:39 am AM 28 Tue June 4 4 04 04 01 28 Tuesday 0 06 Jun 6 +0100 RFC2822 Tue, 28 Jun 1977 04:01:39 +0100 39 30 236314899 2 77 1977 178 3600 2003" (date len=167)
  "date +01 1977-06-28 03:01:39 am AM 28 Tue June 3 3 03 03 01 28 Tuesday 0 06 Jun 6 +0000 RFC2822 Tue, 28 Jun 1977 03:01:39 +0000 39 30 236314899 2 77 1977 178 0 2003" (adodb_date len=164)

Error getdate() 236314899
Array ( [seconds] => 39 [minutes] => 1 [hours] => 4 [mday] => 28 [wday] => 2 [mon] => 6 [year] => 1977 [yday] => 178 [weekday] => Tuesday [month] => June [0] => 236314899 )
Array ( [seconds] => 39 [minutes] => 1 [hours] => 3 [mday] => 28 [wday] => 2 [mon] => 6 [year] => 1977 [yday] => 178 [weekday] => Tuesday [month] => June [0] => 236314899 )

9:16:49 pm PM 02 Mon May 7 19 07 19 16 2 Monday 0 05 May 5 +0100 RFC2822 Mon, 02 May 1977 19:16:49 +0100 49 31 231445009 1 77 1977 121 3600 2003 Error date(): 231445009

  "date +01 1977-05-02 19:16:49 pm PM 02 Mon May 7 19 07 19 16 2 Monday 0 05 May 5 +0100 RFC2822 Mon, 02 May 1977 19:16:49 +0100 49 31 231445009 1 77 1977 121 3600 2003" (date len=165)
  "date +01 1977-05-02 18:16:49 pm PM 02 Mon May 6 18 06 18 16 2 Monday 0 05 May 5 +0000 RFC2822 Mon, 02 May 1977 18:16:49 +0000 49 31 231445009 1 77 1977 121 0 2003" (adodb_date len=162)

Error getdate() 231445009
Array ( [seconds] => 49 [minutes] => 16 [hours] => 19 [mday] => 2 [wday] => 1 [mon] => 5 [year] => 1977 [yday] => 121 [weekday] => Monday [month] => May [0] => 231445009 )
Array ( [seconds] => 49 [minutes] => 16 [hours] => 18 [mday] => 2 [wday] => 1 [mon] => 5 [year] => 1977 [yday] => 121 [weekday] => Monday [month] => May [0] => 231445009 )

20:12:07 pm PM 23 Sun July 8 20 08 20 12 23 Sunday 0 07 Jul 7 +0100 RFC2822 Sun, 23 Jul 1978 20:12:07 +0100 07 31 270069127 0 78 1978 203 3600 2003 Error date(): 270069127

  "date +01 1978-07-23 20:12:07 pm PM 23 Sun July 8 20 08 20 12 23 Sunday 0 07 Jul 7 +0100 RFC2822 Sun, 23 Jul 1978 20:12:07 +0100 07 31 270069127 0 78 1978 203 3600 2003" (date len=167)
  "date +01 1978-07-23 19:12:07 pm PM 23 Sun July 7 19 07 19 12 23 Sunday 0 07 Jul 7 +0000 RFC2822 Sun, 23 Jul 1978 19:12:07 +0000 07 31 270069127 0 78 1978 203 0 2003" (adodb_date len=164)

Error getdate() 270069127
Array ( [seconds] => 7 [minutes] => 12 [hours] => 20 [mday] => 23 [wday] => 0 [mon] => 7 [year] => 1978 [yday] => 203 [weekday] => Sunday [month] => July [0] => 270069127 )
Array ( [seconds] => 7 [minutes] => 12 [hours] => 19 [mday] => 23 [wday] => 0 [mon] => 7 [year] => 1978 [yday] => 203 [weekday] => Sunday [month] => July [0] => 270069127 )

5:40:12 pm PM 27 Tue July 3 15 03 15 40 27 Tuesday 1 07 Jul 7 +0100 RFC2822 Tue, 27 Jul 1976 15:40:12 +0100 12 31 207326412 2 76 1976 208 3600 2003 Error date(): 207326412

  "date +01 1976-07-27 15:40:12 pm PM 27 Tue July 3 15 03 15 40 27 Tuesday 1 07 Jul 7 +0100 RFC2822 Tue, 27 Jul 1976 15:40:12 +0100 12 31 207326412 2 76 1976 208 3600 2003" (date len=168)
  "date +01 1976-07-27 14:40:12 pm PM 27 Tue July 2 14 02 14 40 27 Tuesday 1 07 Jul 7 +0000 RFC2822 Tue, 27 Jul 1976 14:40:12 +0000 12 31 207326412 2 76 1976 208 0 2003" (adodb_date len=165)

Error getdate() 207326412
Array ( [seconds] => 12 [minutes] => 40 [hours] => 15 [mday] => 27 [wday] => 2 [mon] => 7 [year] => 1976 [yday] => 208 [weekday] => Tuesday [month] => July [0] => 207326412 )
Array ( [seconds] => 12 [minutes] => 40 [hours] => 14 [mday] => 27 [wday] => 2 [mon] => 7 [year] => 1976 [yday] => 208 [weekday] => Tuesday [month] => July [0] => 207326412 )

2:04:28 pm PM 27 Sat July 10 22 10 22 04 27 Saturday 0 07 Jul 7 +0100 RFC2822 Sat, 27 Jul 1974 22:04:28 +0100 28 31 144191068 6 74 1974 207 3600 2003 Error date(): 144191068

  "date +01 1974-07-27 22:04:28 pm PM 27 Sat July 10 22 10 22 04 27 Saturday 0 07 Jul 7 +0100 RFC2822 Sat, 27 Jul 1974 22:04:28 +0100 28 31 144191068 6 74 1974 207 3600 2003" (date len=170)
  "date +01 1974-07-27 21:04:28 pm PM 27 Sat July 9 21 09 21 04 27 Saturday 0 07 Jul 7 +0000 RFC2822 Sat, 27 Jul 1974 21:04:28 +0000 28 31 144191068 6 74 1974 207 0 2003" (adodb_date len=166)

Error getdate() 144191068
Array ( [seconds] => 28 [minutes] => 4 [hours] => 22 [mday] => 27 [wday] => 6 [mon] => 7 [year] => 1974 [yday] => 207 [weekday] => Saturday [month] => July [0] => 144191068 )
Array ( [seconds] => 28 [minutes] => 4 [hours] => 21 [mday] => 27 [wday] => 6 [mon] => 7 [year] => 1974 [yday] => 207 [weekday] => Saturday [month] => July [0] => 144191068 )

5:56:31 pm PM 08 Thu July 3 15 03 15 56 8 Thursday 1 07 Jul 7 +0100 RFC2822 Thu, 08 Jul 1976 15:56:31 +0100 31 31 205685791 4 76 1976 189 3600 2003 Error date(): 205685791

  "date +01 1976-07-08 15:56:31 pm PM 08 Thu July 3 15 03 15 56 8 Thursday 1 07 Jul 7 +0100 RFC2822 Thu, 08 Jul 1976 15:56:31 +0100 31 31 205685791 4 76 1976 189 3600 2003" (date len=168)
  "date +01 1976-07-08 14:56:31 pm PM 08 Thu July 2 14 02 14 56 8 Thursday 1 07 Jul 7 +0000 RFC2822 Thu, 08 Jul 1976 14:56:31 +0000 31 31 205685791 4 76 1976 189 0 2003" (adodb_date len=165)

Error getdate() 205685791
Array ( [seconds] => 31 [minutes] => 56 [hours] => 15 [mday] => 8 [wday] => 4 [mon] => 7 [year] => 1976 [yday] => 189 [weekday] => Thursday [month] => July [0] => 205685791 )
Array ( [seconds] => 31 [minutes] => 56 [hours] => 14 [mday] => 8 [wday] => 4 [mon] => 7 [year] => 1976 [yday] => 189 [weekday] => Thursday [month] => July [0] => 205685791 )

9:25:55 am AM 30 Tue July 9 9 09 09 25 30 Tuesday 0 07 Jul 7 +0100 RFC2822 Tue, 30 Jul 1974 09:25:55 +0100 55 31 144404755 2 74 1974 210 3600 2003 Error date(): 144404755

  "date +01 1974-07-30 09:25:55 am AM 30 Tue July 9 9 09 09 25 30 Tuesday 0 07 Jul 7 +0100 RFC2822 Tue, 30 Jul 1974 09:25:55 +0100 55 31 144404755 2 74 1974 210 3600 2003" (date len=167)
  "date +01 1974-07-30 08:25:55 am AM 30 Tue July 8 8 08 08 25 30 Tuesday 0 07 Jul 7 +0000 RFC2822 Tue, 30 Jul 1974 08:25:55 +0000 55 31 144404755 2 74 1974 210 0 2003" (adodb_date len=164)

Error getdate() 144404755
Array ( [seconds] => 55 [minutes] => 25 [hours] => 9 [mday] => 30 [wday] => 2 [mon] => 7 [year] => 1974 [yday] => 210 [weekday] => Tuesday [month] => July [0] => 144404755 )
Array ( [seconds] => 55 [minutes] => 25 [hours] => 8 [mday] => 30 [wday] => 2 [mon] => 7 [year] => 1974 [yday] => 210 [weekday] => Tuesday [month] => July [0] => 144404755 )

2:42:03 pm PM 12 Fri July 12 12 12 12 42 12 Friday 0 07 Jul 7 +0100 RFC2822 Fri, 12 Jul 1974 12:42:03 +0100 03 31 142861323 5 74 1974 192 3600 2003 Error date(): 142861323

  "date +01 1974-07-12 12:42:03 pm PM 12 Fri July 12 12 12 12 42 12 Friday 0 07 Jul 7 +0100 RFC2822 Fri, 12 Jul 1974 12:42:03 +0100 03 31 142861323 5 74 1974 192 3600 2003" (date len=168)
  "date +01 1974-07-12 11:42:03 am AM 12 Fri July 11 11 11 11 42 12 Friday 0 07 Jul 7 +0000 RFC2822 Fri, 12 Jul 1974 11:42:03 +0000 03 31 142861323 5 74 1974 192 0 2003" (adodb_date len=165)

Testing random dates between 100 and 4000

Testing 1963 to 1975, or 378432000 seconds, offset=59642: 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 Tested 6346 dates

Failed :-(

Original: 2063-12-24
Converted: 24-Dec-2063