First column:   year   month .   Number of months
Repeat day codes every columns.   Entry padding em.  

202520252025202520252025
JulAugSepOctNovDec
      
Mo1Mo1Mo
Tu12Tu2Tu
We23We13We
Th34Th24Th
Fr415Fr35Fr
Sa526Sa416Sa
Su637Su527Su
      
Mo748Mo638Mo
Tu859Tu749Tu
We9610We8510We
Th10711Th9611Th
Fr11812Fr10712Fr
Sa12913Sa11813Sa
Su131014Su12914Su
      
Mo141115Mo131015Mo
Tu151216Tu141116Tu
We161317We151217We
Th171418Th161318Th
Fr181519Fr171419Fr
Sa191620Sa181520Sa
Su201721Su191621Su
      
Mo211822Mo201722Mo
Tu221923Tu211823Tu
We232024We221924We
Th242125Th232025Th
Fr252226Fr242126Fr
Sa262327Sa252227Sa
Su272428Su262328Su
      
Mo282529Mo272429Mo
Tu292630Tu282530Tu
We3027We292631We
Th3128Th3027Th
Fr29Fr3128Fr
Sa30Sa29Sa
Su31Su30Su

35 rows

Notes on curious non-bug on my home machine:
with date_default_timezone_set('UTC') - be patient
without that declaration