-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-08-28 04:28:22
php : 2025-08-28 05:28:22
error for %Y %m %x %X, strftime=2025 08 08/28/25 05:28:22, adodb=2025 08 08/28/25 04:28:22
error for %H %M S, strftime=05 28 S, adodb=04 28 S

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

2:37:11 pm PM 27 Tue August 12 12 12 12 37 27 Tuesday 0 08 Aug 8 +0100 RFC2822 Tue, 27 Aug 1974 12:37:11 +0100 11 31 146835431 2 74 1974 238 3600 2003 Error date(): 146835431
  "date +01 1974-08-27 12:37:11 pm PM 27 Tue August 12 12 12 12 37 27 Tuesday 0 08 Aug 8 +0100 RFC2822 Tue, 27 Aug 1974 12:37:11 +0100 11 31 146835431 2 74 1974 238 3600 2003" (date len=171)
  "date +01 1974-08-27 11:37:11 am AM 27 Tue August 11 11 11 11 37 27 Tuesday 0 08 Aug 8 +0000 RFC2822 Tue, 27 Aug 1974 11:37:11 +0000 11 31 146835431 2 74 1974 238 0 2003" (adodb_date len=168)

Error getdate() 146835431
Array ( [seconds] => 11 [minutes] => 37 [hours] => 12 [mday] => 27 [wday] => 2 [mon] => 8 [year] => 1974 [yday] => 238 [weekday] => Tuesday [month] => August [0] => 146835431 )
Array ( [seconds] => 11 [minutes] => 37 [hours] => 11 [mday] => 27 [wday] => 2 [mon] => 8 [year] => 1974 [yday] => 238 [weekday] => Tuesday [month] => August [0] => 146835431 )

1:09:22 pm PM 06 Wed July 9 21 09 21 09 6 Wednesday 0 07 Jul 7 +0100 RFC2822 Wed, 06 Jul 1977 21:09:22 +0100 22 31 237067762 3 77 1977 186 3600 2003 Error date(): 237067762

  "date +01 1977-07-06 21:09:22 pm PM 06 Wed July 9 21 09 21 09 6 Wednesday 0 07 Jul 7 +0100 RFC2822 Wed, 06 Jul 1977 21:09:22 +0100 22 31 237067762 3 77 1977 186 3600 2003" (date len=169)
  "date +01 1977-07-06 20:09:22 pm PM 06 Wed July 8 20 08 20 09 6 Wednesday 0 07 Jul 7 +0000 RFC2822 Wed, 06 Jul 1977 20:09:22 +0000 22 31 237067762 3 77 1977 186 0 2003" (adodb_date len=166)

Error getdate() 237067762
Array ( [seconds] => 22 [minutes] => 9 [hours] => 21 [mday] => 6 [wday] => 3 [mon] => 7 [year] => 1977 [yday] => 186 [weekday] => Wednesday [month] => July [0] => 237067762 )
Array ( [seconds] => 22 [minutes] => 9 [hours] => 20 [mday] => 6 [wday] => 3 [mon] => 7 [year] => 1977 [yday] => 186 [weekday] => Wednesday [month] => July [0] => 237067762 )

4:45:18 pm PM 21 Fri July 2 14 02 14 45 21 Friday 0 07 Jul 7 +0100 RFC2822 Fri, 21 Jul 1978 14:45:18 +0100 18 31 269876718 5 78 1978 201 3600 2003 Error date(): 269876718

  "date +01 1978-07-21 14:45:18 pm PM 21 Fri July 2 14 02 14 45 21 Friday 0 07 Jul 7 +0100 RFC2822 Fri, 21 Jul 1978 14:45:18 +0100 18 31 269876718 5 78 1978 201 3600 2003" (date len=167)
  "date +01 1978-07-21 13:45:18 pm PM 21 Fri July 1 13 01 13 45 21 Friday 0 07 Jul 7 +0000 RFC2822 Fri, 21 Jul 1978 13:45:18 +0000 18 31 269876718 5 78 1978 201 0 2003" (adodb_date len=164)

Error getdate() 269876718
Array ( [seconds] => 18 [minutes] => 45 [hours] => 14 [mday] => 21 [wday] => 5 [mon] => 7 [year] => 1978 [yday] => 201 [weekday] => Friday [month] => July [0] => 269876718 )
Array ( [seconds] => 18 [minutes] => 45 [hours] => 13 [mday] => 21 [wday] => 5 [mon] => 7 [year] => 1978 [yday] => 201 [weekday] => Friday [month] => July [0] => 269876718 )

2:17:11 am AM 12 Thu May 2 2 02 02 17 12 Thursday 0 05 May 5 +0100 RFC2822 Thu, 12 May 1977 02:17:11 +0100 11 31 232247831 4 77 1977 131 3600 2003 Error date(): 232247831

  "date +01 1977-05-12 02:17:11 am AM 12 Thu May 2 2 02 02 17 12 Thursday 0 05 May 5 +0100 RFC2822 Thu, 12 May 1977 02:17:11 +0100 11 31 232247831 4 77 1977 131 3600 2003" (date len=167)
  "date +01 1977-05-12 01:17:11 am AM 12 Thu May 1 1 01 01 17 12 Thursday 0 05 May 5 +0000 RFC2822 Thu, 12 May 1977 01:17:11 +0000 11 31 232247831 4 77 1977 131 0 2003" (adodb_date len=164)

Error getdate() 232247831
Array ( [seconds] => 11 [minutes] => 17 [hours] => 2 [mday] => 12 [wday] => 4 [mon] => 5 [year] => 1977 [yday] => 131 [weekday] => Thursday [month] => May [0] => 232247831 )
Array ( [seconds] => 11 [minutes] => 17 [hours] => 1 [mday] => 12 [wday] => 4 [mon] => 5 [year] => 1977 [yday] => 131 [weekday] => Thursday [month] => May [0] => 232247831 )

3:27:24 am AM 18 Thu July 3 3 03 03 27 18 Thursday 0 07 Jul 7 +0100 RFC2822 Thu, 18 Jul 1974 03:27:24 +0100 24 31 143346444 4 74 1974 198 3600 2003 Error date(): 143346444

  "date +01 1974-07-18 03:27:24 am AM 18 Thu July 3 3 03 03 27 18 Thursday 0 07 Jul 7 +0100 RFC2822 Thu, 18 Jul 1974 03:27:24 +0100 24 31 143346444 4 74 1974 198 3600 2003" (date len=168)
  "date +01 1974-07-18 02:27:24 am AM 18 Thu July 2 2 02 02 27 18 Thursday 0 07 Jul 7 +0000 RFC2822 Thu, 18 Jul 1974 02:27:24 +0000 24 31 143346444 4 74 1974 198 0 2003" (adodb_date len=165)

Error getdate() 143346444
Array ( [seconds] => 24 [minutes] => 27 [hours] => 3 [mday] => 18 [wday] => 4 [mon] => 7 [year] => 1974 [yday] => 198 [weekday] => Thursday [month] => July [0] => 143346444 )
Array ( [seconds] => 24 [minutes] => 27 [hours] => 2 [mday] => 18 [wday] => 4 [mon] => 7 [year] => 1974 [yday] => 198 [weekday] => Thursday [month] => July [0] => 143346444 )

3:01:53 pm PM 13 Thu May 1 13 01 13 01 13 Thursday 1 05 May 5 +0100 RFC2822 Thu, 13 May 1976 13:01:53 +0100 53 31 200836913 4 76 1976 133 3600 2003 Error date(): 200836913

  "date +01 1976-05-13 13:01:53 pm PM 13 Thu May 1 13 01 13 01 13 Thursday 1 05 May 5 +0100 RFC2822 Thu, 13 May 1976 13:01:53 +0100 53 31 200836913 4 76 1976 133 3600 2003" (date len=168)
  "date +01 1976-05-13 12:01:53 pm PM 13 Thu May 12 12 12 12 01 13 Thursday 1 05 May 5 +0000 RFC2822 Thu, 13 May 1976 12:01:53 +0000 53 31 200836913 4 76 1976 133 0 2003" (adodb_date len=166)

4:34:11 pm PM 25 Sun June 2 14 02 14 34 25 Sunday 0 06 Jun 6 +0100 RFC2822 Sun, 25 Jun 1978 14:34:11 +0100 11 30 267629651 0 78 1978 175 3600 2003 Error date(): 267629651
  "date +01 1978-06-25 14:34:11 pm PM 25 Sun June 2 14 02 14 34 25 Sunday 0 06 Jun 6 +0100 RFC2822 Sun, 25 Jun 1978 14:34:11 +0100 11 30 267629651 0 78 1978 175 3600 2003" (date len=167)
  "date +01 1978-06-25 13:34:11 pm PM 25 Sun June 1 13 01 13 34 25 Sunday 0 06 Jun 6 +0000 RFC2822 Sun, 25 Jun 1978 13:34:11 +0000 11 30 267629651 0 78 1978 175 0 2003" (adodb_date len=164)

Error getdate() 267629651
Array ( [seconds] => 11 [minutes] => 34 [hours] => 14 [mday] => 25 [wday] => 0 [mon] => 6 [year] => 1978 [yday] => 175 [weekday] => Sunday [month] => June [0] => 267629651 )
Array ( [seconds] => 11 [minutes] => 34 [hours] => 13 [mday] => 25 [wday] => 0 [mon] => 6 [year] => 1978 [yday] => 175 [weekday] => Sunday [month] => June [0] => 267629651 )

1:35:09 am AM 10 Sat August 1 1 01 01 35 10 Saturday 0 08 Aug 8 +0100 RFC2822 Sat, 10 Aug 1974 01:35:09 +0100 09 31 145326909 6 74 1974 221 3600 2003 Error date(): 145326909

  "date +01 1974-08-10 01:35:09 am AM 10 Sat August 1 1 01 01 35 10 Saturday 0 08 Aug 8 +0100 RFC2822 Sat, 10 Aug 1974 01:35:09 +0100 09 31 145326909 6 74 1974 221 3600 2003" (date len=170)
  "date +01 1974-08-10 00:35:09 am AM 10 Sat August 12 0 12 00 35 10 Saturday 0 08 Aug 8 +0000 RFC2822 Sat, 10 Aug 1974 00:35:09 +0000 09 31 145326909 6 74 1974 221 0 2003" (adodb_date len=168)

Error getdate() 145326909
Array ( [seconds] => 9 [minutes] => 35 [hours] => 1 [mday] => 10 [wday] => 6 [mon] => 8 [year] => 1974 [yday] => 221 [weekday] => Saturday [month] => August [0] => 145326909 )
Array ( [seconds] => 9 [minutes] => 35 [hours] => 0 [mday] => 10 [wday] => 6 [mon] => 8 [year] => 1974 [yday] => 221 [weekday] => Saturday [month] => August [0] => 145326909 )

7:13:08 am AM 23 Sat July 7 7 07 07 13 23 Saturday 0 07 Jul 7 +0100 RFC2822 Sat, 23 Jul 1977 07:13:08 +0100 08 31 238486388 6 77 1977 203 3600 2003 Error date(): 238486388

  "date +01 1977-07-23 07:13:08 am AM 23 Sat July 7 7 07 07 13 23 Saturday 0 07 Jul 7 +0100 RFC2822 Sat, 23 Jul 1977 07:13:08 +0100 08 31 238486388 6 77 1977 203 3600 2003" (date len=168)
  "date +01 1977-07-23 06:13:08 am AM 23 Sat July 6 6 06 06 13 23 Saturday 0 07 Jul 7 +0000 RFC2822 Sat, 23 Jul 1977 06:13:08 +0000 08 31 238486388 6 77 1977 203 0 2003" (adodb_date len=165)

7:20:30 pm PM 20 Tue August 5 17 05 17 20 20 Tuesday 0 08 Aug 8 +0100 RFC2822 Tue, 20 Aug 1974 17:20:30 +0100 30 31 146247630 2 74 1974 231 3600 2003 Error date(): 146247630
  "date +01 1974-08-20 17:20:30 pm PM 20 Tue August 5 17 05 17 20 20 Tuesday 0 08 Aug 8 +0100 RFC2822 Tue, 20 Aug 1974 17:20:30 +0100 30 31 146247630 2 74 1974 231 3600 2003" (date len=170)
  "date +01 1974-08-20 16:20:30 pm PM 20 Tue August 4 16 04 16 20 20 Tuesday 0 08 Aug 8 +0000 RFC2822 Tue, 20 Aug 1974 16:20:30 +0000 30 31 146247630 2 74 1974 231 0 2003" (adodb_date len=167)

Error getdate() 146247630
Array ( [seconds] => 30 [minutes] => 20 [hours] => 17 [mday] => 20 [wday] => 2 [mon] => 8 [year] => 1974 [yday] => 231 [weekday] => Tuesday [month] => August [0] => 146247630 )
Array ( [seconds] => 30 [minutes] => 20 [hours] => 16 [mday] => 20 [wday] => 2 [mon] => 8 [year] => 1974 [yday] => 231 [weekday] => Tuesday [month] => August [0] => 146247630 )

7:54:44 am AM 02 Wed June 7 7 07 07 54 2 Wednesday 1 06 Jun 6 +0100 RFC2822 Wed, 02 Jun 1976 07:54:44 +0100 44 30 202546484 3 76 1976 153 3600 2003 Error date(): 202546484

  "date +01 1976-06-02 07:54:44 am AM 02 Wed June 7 7 07 07 54 2 Wednesday 1 06 Jun 6 +0100 RFC2822 Wed, 02 Jun 1976 07:54:44 +0100 44 30 202546484 3 76 1976 153 3600 2003" (date len=168)
  "date +01 1976-06-02 06:54:44 am AM 02 Wed June 6 6 06 06 54 2 Wednesday 1 06 Jun 6 +0000 RFC2822 Wed, 02 Jun 1976 06:54:44 +0000 44 30 202546484 3 76 1976 153 0 2003" (adodb_date len=165)

Error getdate() 202546484
Array ( [seconds] => 44 [minutes] => 54 [hours] => 7 [mday] => 2 [wday] => 3 [mon] => 6 [year] => 1976 [yday] => 153 [weekday] => Wednesday [month] => June [0] => 202546484 )
Array ( [seconds] => 44 [minutes] => 54 [hours] => 6 [mday] => 2 [wday] => 3 [mon] => 6 [year] => 1976 [yday] => 153 [weekday] => Wednesday [month] => June [0] => 202546484 )

3:49:05 pm PM 30 Sun July 1 13 01 13 49 30 Sunday 0 07 Jul 7 +0100 RFC2822 Sun, 30 Jul 1978 13:49:05 +0100 05 31 270650945 0 78 1978 210 3600 2003 Error date(): 270650945

  "date +01 1978-07-30 13:49:05 pm PM 30 Sun July 1 13 01 13 49 30 Sunday 0 07 Jul 7 +0100 RFC2822 Sun, 30 Jul 1978 13:49:05 +0100 05 31 270650945 0 78 1978 210 3600 2003" (date len=167)
  "date +01 1978-07-30 12:49:05 pm PM 30 Sun July 12 12 12 12 49 30 Sunday 0 07 Jul 7 +0000 RFC2822 Sun, 30 Jul 1978 12:49:05 +0000 05 31 270650945 0 78 1978 210 0 2003" (adodb_date len=165)

Error getdate() 270650945
Array ( [seconds] => 5 [minutes] => 49 [hours] => 13 [mday] => 30 [wday] => 0 [mon] => 7 [year] => 1978 [yday] => 210 [weekday] => Sunday [month] => July [0] => 270650945 )
Array ( [seconds] => 5 [minutes] => 49 [hours] => 12 [mday] => 30 [wday] => 0 [mon] => 7 [year] => 1978 [yday] => 210 [weekday] => Sunday [month] => July [0] => 270650945 )

2:14:09 pm PM 26 Mon September 12 12 12 12 14 26 Monday 0 09 Sep 9 +0100 RFC2822 Mon, 26 Sep 1977 12:14:09 +0100 09 30 244120449 1 77 1977 268 3600 2003 Error date(): 244120449

  "date +01 1977-09-26 12:14:09 pm PM 26 Mon September 12 12 12 12 14 26 Monday 0 09 Sep 9 +0100 RFC2822 Mon, 26 Sep 1977 12:14:09 +0100 09 30 244120449 1 77 1977 268 3600 2003" (date len=173)
  "date +01 1977-09-26 11:14:09 am AM 26 Mon September 11 11 11 11 14 26 Monday 0 09 Sep 9 +0000 RFC2822 Mon, 26 Sep 1977 11:14:09 +0000 09 30 244120449 1 77 1977 268 0 2003" (adodb_date len=170)

Error getdate() 244120449
Array ( [seconds] => 9 [minutes] => 14 [hours] => 12 [mday] => 26 [wday] => 1 [mon] => 9 [year] => 1977 [yday] => 268 [weekday] => Monday [month] => September [0] => 244120449 )
Array ( [seconds] => 9 [minutes] => 14 [hours] => 11 [mday] => 26 [wday] => 1 [mon] => 9 [year] => 1977 [yday] => 268 [weekday] => Monday [month] => September [0] => 244120449 )

8:20:27 am AM 01 Sat May 8 8 08 08 20 1 Saturday 1 05 May 5 +0100 RFC2822 Sat, 01 May 1976 08:20:27 +0100 27 31 199783227 6 76 1976 121 3600 2003 Error date(): 199783227

  "date +01 1976-05-01 08:20:27 am AM 01 Sat May 8 8 08 08 20 1 Saturday 1 05 May 5 +0100 RFC2822 Sat, 01 May 1976 08:20:27 +0100 27 31 199783227 6 76 1976 121 3600 2003" (date len=166)
  "date +01 1976-05-01 07:20:27 am AM 01 Sat May 7 7 07 07 20 1 Saturday 1 05 May 5 +0000 RFC2822 Sat, 01 May 1976 07:20:27 +0000 27 31 199783227 6 76 1976 121 0 2003" (adodb_date len=163)

Error getdate() 199783227
Array ( [seconds] => 27 [minutes] => 20 [hours] => 8 [mday] => 1 [wday] => 6 [mon] => 5 [year] => 1976 [yday] => 121 [weekday] => Saturday [month] => May [0] => 199783227 )
Array ( [seconds] => 27 [minutes] => 20 [hours] => 7 [mday] => 1 [wday] => 6 [mon] => 5 [year] => 1976 [yday] => 121 [weekday] => Saturday [month] => May [0] => 199783227 )

8:51:43 am AM 14 Wed June 8 8 08 08 51 14 Wednesday 0 06 Jun 6 +0100 RFC2822 Wed, 14 Jun 1978 08:51:43 +0100 43 30 266658703 3 78 1978 164 3600 2003 Error date(): 266658703

  "date +01 1978-06-14 08:51:43 am AM 14 Wed June 8 8 08 08 51 14 Wednesday 0 06 Jun 6 +0100 RFC2822 Wed, 14 Jun 1978 08:51:43 +0100 43 30 266658703 3 78 1978 164 3600 2003" (date len=169)
  "date +01 1978-06-14 07:51:43 am AM 14 Wed June 7 7 07 07 51 14 Wednesday 0 06 Jun 6 +0000 RFC2822 Wed, 14 Jun 1978 07:51:43 +0000 43 30 266658703 3 78 1978 164 0 2003" (adodb_date len=166)

Error getdate() 266658703
Array ( [seconds] => 43 [minutes] => 51 [hours] => 8 [mday] => 14 [wday] => 3 [mon] => 6 [year] => 1978 [yday] => 164 [weekday] => Wednesday [month] => June [0] => 266658703 )
Array ( [seconds] => 43 [minutes] => 51 [hours] => 7 [mday] => 14 [wday] => 3 [mon] => 6 [year] => 1978 [yday] => 164 [weekday] => Wednesday [month] => June [0] => 266658703 )

8 00:41:41 am AM 28 Mon June 12 0 12 00 41 28 Monday 1 06 Jun 6 +0100 RFC2822 Mon, 28 Jun 1976 00:41:41 +0100 41 30 204766901 1 76 1976 179 3600 2003 Error date(): 204766901

  "date +01 1976-06-28 00:41:41 am AM 28 Mon June 12 0 12 00 41 28 Monday 1 06 Jun 6 +0100 RFC2822 Mon, 28 Jun 1976 00:41:41 +0100 41 30 204766901 1 76 1976 179 3600 2003" (date len=167)
  "date +01 1976-06-27 23:41:41 pm PM 27 Sun June 11 23 11 23 41 27 Sunday 1 06 Jun 6 +0000 RFC2822 Sun, 27 Jun 1976 23:41:41 +0000 41 30 204766901 0 76 1976 178 0 2003" (adodb_date len=165)

Error getdate() 204766901
Array ( [seconds] => 41 [minutes] => 41 [hours] => 0 [mday] => 28 [wday] => 1 [mon] => 6 [year] => 1976 [yday] => 179 [weekday] => Monday [month] => June [0] => 204766901 )
Array ( [seconds] => 41 [minutes] => 41 [hours] => 23 [mday] => 27 [wday] => 0 [mon] => 6 [year] => 1976 [yday] => 178 [weekday] => Sunday [month] => June [0] => 204766901 )

Testing random dates between 100 and 4000

Testing 1960 to 1972, or 378432000 seconds, offset=86947: 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 Tested 4353 dates

Failed :-(

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