-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.4.33

adodb: 2025-06-10 07:00:01
php : 2025-06-10 07:00:01

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

20:27:05 pm PM 07 Wed August 8 20 08 20 27 7 Wednesday 0 08 Aug 8 +0100 RFC2822 Wed, 07 Aug 1974 20:27:05 +0100 05 31 145135625 3 74 1974 218 3600 2003 Error date(): 145135625
  "date +01 1974-08-07 20:27:05 pm PM 07 Wed August 8 20 08 20 27 7 Wednesday 0 08 Aug 8 +0100 RFC2822 Wed, 07 Aug 1974 20:27:05 +0100 05 31 145135625 3 74 1974 218 3600 2003" (date len=171)
  "date +01 1974-08-07 19:27:05 pm PM 07 Wed August 7 19 07 19 27 7 Wednesday 0 08 Aug 8 +0000 RFC2822 Wed, 07 Aug 1974 19:27:05 +0000 05 31 145135625 3 74 1974 218 0 2003" (adodb_date len=168)

Error getdate() 145135625
Array ( [seconds] => 5 [minutes] => 27 [hours] => 20 [mday] => 7 [wday] => 3 [mon] => 8 [year] => 1974 [yday] => 218 [weekday] => Wednesday [month] => August [0] => 145135625 )
Array ( [seconds] => 5 [minutes] => 27 [hours] => 19 [mday] => 7 [wday] => 3 [mon] => 8 [year] => 1974 [yday] => 218 [weekday] => Wednesday [month] => August [0] => 145135625 )

3 00:22:44 am AM 03 Mon May 12 0 12 00 22 3 Monday 1 05 May 5 +0100 RFC2822 Mon, 03 May 1976 00:22:44 +0100 44 31 199927364 1 76 1976 123 3600 2003 Error date(): 199927364

  "date +01 1976-05-03 00:22:44 am AM 03 Mon May 12 0 12 00 22 3 Monday 1 05 May 5 +0100 RFC2822 Mon, 03 May 1976 00:22:44 +0100 44 31 199927364 1 76 1976 123 3600 2003" (date len=165)
  "date +01 1976-05-02 23:22:44 pm PM 02 Sun May 11 23 11 23 22 2 Sunday 1 05 May 5 +0000 RFC2822 Sun, 02 May 1976 23:22:44 +0000 44 31 199927364 0 76 1976 122 0 2003" (adodb_date len=163)

Error getdate() 199927364
Array ( [seconds] => 44 [minutes] => 22 [hours] => 0 [mday] => 3 [wday] => 1 [mon] => 5 [year] => 1976 [yday] => 123 [weekday] => Monday [month] => May [0] => 199927364 )
Array ( [seconds] => 44 [minutes] => 22 [hours] => 23 [mday] => 2 [wday] => 0 [mon] => 5 [year] => 1976 [yday] => 122 [weekday] => Sunday [month] => May [0] => 199927364 )

3:52:12 pm PM 11 Sun August 1 13 01 13 52 11 Sunday 0 08 Aug 8 +0100 RFC2822 Sun, 11 Aug 1974 13:52:12 +0100 12 31 145457532 0 74 1974 222 3600 2003 Error date(): 145457532

  "date +01 1974-08-11 13:52:12 pm PM 11 Sun August 1 13 01 13 52 11 Sunday 0 08 Aug 8 +0100 RFC2822 Sun, 11 Aug 1974 13:52:12 +0100 12 31 145457532 0 74 1974 222 3600 2003" (date len=169)
  "date +01 1974-08-11 12:52:12 pm PM 11 Sun August 12 12 12 12 52 11 Sunday 0 08 Aug 8 +0000 RFC2822 Sun, 11 Aug 1974 12:52:12 +0000 12 31 145457532 0 74 1974 222 0 2003" (adodb_date len=167)

Error getdate() 145457532
Array ( [seconds] => 12 [minutes] => 52 [hours] => 13 [mday] => 11 [wday] => 0 [mon] => 8 [year] => 1974 [yday] => 222 [weekday] => Sunday [month] => August [0] => 145457532 )
Array ( [seconds] => 12 [minutes] => 52 [hours] => 12 [mday] => 11 [wday] => 0 [mon] => 8 [year] => 1974 [yday] => 222 [weekday] => Sunday [month] => August [0] => 145457532 )

3:35:35 am AM 29 Sun May 3 3 03 03 35 29 Sunday 0 05 May 5 +0100 RFC2822 Sun, 29 May 1977 03:35:35 +0100 35 31 233721335 0 77 1977 148 3600 2003 Error date(): 233721335

  "date +01 1977-05-29 03:35:35 am AM 29 Sun May 3 3 03 03 35 29 Sunday 0 05 May 5 +0100 RFC2822 Sun, 29 May 1977 03:35:35 +0100 35 31 233721335 0 77 1977 148 3600 2003" (date len=165)
  "date +01 1977-05-29 02:35:35 am AM 29 Sun May 2 2 02 02 35 29 Sunday 0 05 May 5 +0000 RFC2822 Sun, 29 May 1977 02:35:35 +0000 35 31 233721335 0 77 1977 148 0 2003" (adodb_date len=162)

Error getdate() 233721335
Array ( [seconds] => 35 [minutes] => 35 [hours] => 3 [mday] => 29 [wday] => 0 [mon] => 5 [year] => 1977 [yday] => 148 [weekday] => Sunday [month] => May [0] => 233721335 )
Array ( [seconds] => 35 [minutes] => 35 [hours] => 2 [mday] => 29 [wday] => 0 [mon] => 5 [year] => 1977 [yday] => 148 [weekday] => Sunday [month] => May [0] => 233721335 )

3:39:27 am AM 29 Sat May 3 3 03 03 39 29 Saturday 1 05 May 5 +0100 RFC2822 Sat, 29 May 1976 03:39:27 +0100 27 31 202185567 6 76 1976 149 3600 2003 Error date(): 202185567

  "date +01 1976-05-29 03:39:27 am AM 29 Sat May 3 3 03 03 39 29 Saturday 1 05 May 5 +0100 RFC2822 Sat, 29 May 1976 03:39:27 +0100 27 31 202185567 6 76 1976 149 3600 2003" (date len=167)
  "date +01 1976-05-29 02:39:27 am AM 29 Sat May 2 2 02 02 39 29 Saturday 1 05 May 5 +0000 RFC2822 Sat, 29 May 1976 02:39:27 +0000 27 31 202185567 6 76 1976 149 0 2003" (adodb_date len=164)

Error getdate() 202185567
Array ( [seconds] => 27 [minutes] => 39 [hours] => 3 [mday] => 29 [wday] => 6 [mon] => 5 [year] => 1976 [yday] => 149 [weekday] => Saturday [month] => May [0] => 202185567 )
Array ( [seconds] => 27 [minutes] => 39 [hours] => 2 [mday] => 29 [wday] => 6 [mon] => 5 [year] => 1976 [yday] => 149 [weekday] => Saturday [month] => May [0] => 202185567 )

2:52:53 am AM 27 Tue June 2 2 02 02 52 27 Tuesday 0 06 Jun 6 +0100 RFC2822 Tue, 27 Jun 1978 02:52:53 +0100 53 30 267760373 2 78 1978 177 3600 2003 Error date(): 267760373

  "date +01 1978-06-27 02:52:53 am AM 27 Tue June 2 2 02 02 52 27 Tuesday 0 06 Jun 6 +0100 RFC2822 Tue, 27 Jun 1978 02:52:53 +0100 53 30 267760373 2 78 1978 177 3600 2003" (date len=167)
  "date +01 1978-06-27 01:52:53 am AM 27 Tue June 1 1 01 01 52 27 Tuesday 0 06 Jun 6 +0000 RFC2822 Tue, 27 Jun 1978 01:52:53 +0000 53 30 267760373 2 78 1978 177 0 2003" (adodb_date len=164)

9:18:11 am AM 21 Thu July 9 9 09 09 18 21 Thursday 0 07 Jul 7 +0100 RFC2822 Thu, 21 Jul 1977 09:18:11 +0100 11 31 238321091 4 77 1977 201 3600 2003 Error date(): 238321091
  "date +01 1977-07-21 09:18:11 am AM 21 Thu July 9 9 09 09 18 21 Thursday 0 07 Jul 7 +0100 RFC2822 Thu, 21 Jul 1977 09:18:11 +0100 11 31 238321091 4 77 1977 201 3600 2003" (date len=168)
  "date +01 1977-07-21 08:18:11 am AM 21 Thu July 8 8 08 08 18 21 Thursday 0 07 Jul 7 +0000 RFC2822 Thu, 21 Jul 1977 08:18:11 +0000 11 31 238321091 4 77 1977 201 0 2003" (adodb_date len=165)

Error getdate() 238321091
Array ( [seconds] => 11 [minutes] => 18 [hours] => 9 [mday] => 21 [wday] => 4 [mon] => 7 [year] => 1977 [yday] => 201 [weekday] => Thursday [month] => July [0] => 238321091 )
Array ( [seconds] => 11 [minutes] => 18 [hours] => 8 [mday] => 21 [wday] => 4 [mon] => 7 [year] => 1977 [yday] => 201 [weekday] => Thursday [month] => July [0] => 238321091 )

9:15:05 pm PM 01 Thu September 7 19 07 19 15 1 Thursday 0 09 Sep 9 +0100 RFC2822 Thu, 01 Sep 1977 19:15:05 +0100 05 30 241985705 4 77 1977 243 3600 2003 Error date(): 241985705

  "date +01 1977-09-01 19:15:05 pm PM 01 Thu September 7 19 07 19 15 1 Thursday 0 09 Sep 9 +0100 RFC2822 Thu, 01 Sep 1977 19:15:05 +0100 05 30 241985705 4 77 1977 243 3600 2003" (date len=173)
  "date +01 1977-09-01 18:15:05 pm PM 01 Thu September 6 18 06 18 15 1 Thursday 0 09 Sep 9 +0000 RFC2822 Thu, 01 Sep 1977 18:15:05 +0000 05 30 241985705 4 77 1977 243 0 2003" (adodb_date len=170)

Error getdate() 241985705
Array ( [seconds] => 5 [minutes] => 15 [hours] => 19 [mday] => 1 [wday] => 4 [mon] => 9 [year] => 1977 [yday] => 243 [weekday] => Thursday [month] => September [0] => 241985705 )
Array ( [seconds] => 5 [minutes] => 15 [hours] => 18 [mday] => 1 [wday] => 4 [mon] => 9 [year] => 1977 [yday] => 243 [weekday] => Thursday [month] => September [0] => 241985705 )

2:27:40 am AM 29 Sat July 2 2 02 02 27 29 Saturday 0 07 Jul 7 +0100 RFC2822 Sat, 29 Jul 1978 02:27:40 +0100 40 31 270523660 6 78 1978 209 3600 2003 Error date(): 270523660

  "date +01 1978-07-29 02:27:40 am AM 29 Sat July 2 2 02 02 27 29 Saturday 0 07 Jul 7 +0100 RFC2822 Sat, 29 Jul 1978 02:27:40 +0100 40 31 270523660 6 78 1978 209 3600 2003" (date len=168)
  "date +01 1978-07-29 01:27:40 am AM 29 Sat July 1 1 01 01 27 29 Saturday 0 07 Jul 7 +0000 RFC2822 Sat, 29 Jul 1978 01:27:40 +0000 40 31 270523660 6 78 1978 209 0 2003" (adodb_date len=165)

Error getdate() 270523660
Array ( [seconds] => 40 [minutes] => 27 [hours] => 2 [mday] => 29 [wday] => 6 [mon] => 7 [year] => 1978 [yday] => 209 [weekday] => Saturday [month] => July [0] => 270523660 )
Array ( [seconds] => 40 [minutes] => 27 [hours] => 1 [mday] => 29 [wday] => 6 [mon] => 7 [year] => 1978 [yday] => 209 [weekday] => Saturday [month] => July [0] => 270523660 )

7:59:07 pm PM 13 Tue July 5 17 05 17 59 13 Tuesday 1 07 Jul 7 +0100 RFC2822 Tue, 13 Jul 1976 17:59:07 +0100 07 31 206125147 2 76 1976 194 3600 2003 Error date(): 206125147

  "date +01 1976-07-13 17:59:07 pm PM 13 Tue July 5 17 05 17 59 13 Tuesday 1 07 Jul 7 +0100 RFC2822 Tue, 13 Jul 1976 17:59:07 +0100 07 31 206125147 2 76 1976 194 3600 2003" (date len=168)
  "date +01 1976-07-13 16:59:07 pm PM 13 Tue July 4 16 04 16 59 13 Tuesday 1 07 Jul 7 +0000 RFC2822 Tue, 13 Jul 1976 16:59:07 +0000 07 31 206125147 2 76 1976 194 0 2003" (adodb_date len=165)

Error getdate() 206125147
Array ( [seconds] => 7 [minutes] => 59 [hours] => 17 [mday] => 13 [wday] => 2 [mon] => 7 [year] => 1976 [yday] => 194 [weekday] => Tuesday [month] => July [0] => 206125147 )
Array ( [seconds] => 7 [minutes] => 59 [hours] => 16 [mday] => 13 [wday] => 2 [mon] => 7 [year] => 1976 [yday] => 194 [weekday] => Tuesday [month] => July [0] => 206125147 )

9:36:22 am AM 28 Sat May 9 9 09 09 36 28 Saturday 0 05 May 5 +0100 RFC2822 Sat, 28 May 1977 09:36:22 +0100 22 31 233656582 6 77 1977 147 3600 2003 Error date(): 233656582

  "date +01 1977-05-28 09:36:22 am AM 28 Sat May 9 9 09 09 36 28 Saturday 0 05 May 5 +0100 RFC2822 Sat, 28 May 1977 09:36:22 +0100 22 31 233656582 6 77 1977 147 3600 2003" (date len=167)
  "date +01 1977-05-28 08:36:22 am AM 28 Sat May 8 8 08 08 36 28 Saturday 0 05 May 5 +0000 RFC2822 Sat, 28 May 1977 08:36:22 +0000 22 31 233656582 6 77 1977 147 0 2003" (adodb_date len=164)

Error getdate() 233656582
Array ( [seconds] => 22 [minutes] => 36 [hours] => 9 [mday] => 28 [wday] => 6 [mon] => 5 [year] => 1977 [yday] => 147 [weekday] => Saturday [month] => May [0] => 233656582 )
Array ( [seconds] => 22 [minutes] => 36 [hours] => 8 [mday] => 28 [wday] => 6 [mon] => 5 [year] => 1977 [yday] => 147 [weekday] => Saturday [month] => May [0] => 233656582 )

20:07:45 pm PM 03 Sun July 8 20 08 20 07 3 Sunday 0 07 Jul 7 +0100 RFC2822 Sun, 03 Jul 1977 20:07:45 +0100 45 31 236804865 0 77 1977 183 3600 2003 Error date(): 236804865

  "date +01 1977-07-03 20:07:45 pm PM 03 Sun July 8 20 08 20 07 3 Sunday 0 07 Jul 7 +0100 RFC2822 Sun, 03 Jul 1977 20:07:45 +0100 45 31 236804865 0 77 1977 183 3600 2003" (date len=166)
  "date +01 1977-07-03 19:07:45 pm PM 03 Sun July 7 19 07 19 07 3 Sunday 0 07 Jul 7 +0000 RFC2822 Sun, 03 Jul 1977 19:07:45 +0000 45 31 236804865 0 77 1977 183 0 2003" (adodb_date len=163)

Error getdate() 236804865
Array ( [seconds] => 45 [minutes] => 7 [hours] => 20 [mday] => 3 [wday] => 0 [mon] => 7 [year] => 1977 [yday] => 183 [weekday] => Sunday [month] => July [0] => 236804865 )
Array ( [seconds] => 45 [minutes] => 7 [hours] => 19 [mday] => 3 [wday] => 0 [mon] => 7 [year] => 1977 [yday] => 183 [weekday] => Sunday [month] => July [0] => 236804865 )

9:58:26 pm PM 28 Tue June 7 19 07 19 58 28 Tuesday 0 06 Jun 6 +0100 RFC2822 Tue, 28 Jun 1977 19:58:26 +0100 26 30 236372306 2 77 1977 178 3600 2003 Error date(): 236372306

  "date +01 1977-06-28 19:58:26 pm PM 28 Tue June 7 19 07 19 58 28 Tuesday 0 06 Jun 6 +0100 RFC2822 Tue, 28 Jun 1977 19:58:26 +0100 26 30 236372306 2 77 1977 178 3600 2003" (date len=168)
  "date +01 1977-06-28 18:58:26 pm PM 28 Tue June 6 18 06 18 58 28 Tuesday 0 06 Jun 6 +0000 RFC2822 Tue, 28 Jun 1977 18:58:26 +0000 26 30 236372306 2 77 1977 178 0 2003" (adodb_date len=165)

Error getdate() 236372306
Array ( [seconds] => 26 [minutes] => 58 [hours] => 19 [mday] => 28 [wday] => 2 [mon] => 6 [year] => 1977 [yday] => 178 [weekday] => Tuesday [month] => June [0] => 236372306 )
Array ( [seconds] => 26 [minutes] => 58 [hours] => 18 [mday] => 28 [wday] => 2 [mon] => 6 [year] => 1977 [yday] => 178 [weekday] => Tuesday [month] => June [0] => 236372306 )

9:11:26 pm PM 07 Wed August 7 19 07 19 11 7 Wednesday 0 08 Aug 8 +0100 RFC2822 Wed, 07 Aug 1974 19:11:26 +0100 26 31 145131086 3 74 1974 218 3600 2003 Error date(): 145131086

  "date +01 1974-08-07 19:11:26 pm PM 07 Wed August 7 19 07 19 11 7 Wednesday 0 08 Aug 8 +0100 RFC2822 Wed, 07 Aug 1974 19:11:26 +0100 26 31 145131086 3 74 1974 218 3600 2003" (date len=171)
  "date +01 1974-08-07 18:11:26 pm PM 07 Wed August 6 18 06 18 11 7 Wednesday 0 08 Aug 8 +0000 RFC2822 Wed, 07 Aug 1974 18:11:26 +0000 26 31 145131086 3 74 1974 218 0 2003" (adodb_date len=168)

Error getdate() 145131086
Array ( [seconds] => 26 [minutes] => 11 [hours] => 19 [mday] => 7 [wday] => 3 [mon] => 8 [year] => 1974 [yday] => 218 [weekday] => Wednesday [month] => August [0] => 145131086 )
Array ( [seconds] => 26 [minutes] => 11 [hours] => 18 [mday] => 7 [wday] => 3 [mon] => 8 [year] => 1974 [yday] => 218 [weekday] => Wednesday [month] => August [0] => 145131086 )

Testing random dates between 100 and 4000

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

Failed :-(

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