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

202220222022202220222022
MayJunJulAugSepOct
      
ThTh1Th
Fr1Fr2Fr
Sa2Sa31Sa
Su13Su42Su
      
Mo24Mo153Mo
Tu35Tu264Tu
We416We375We
Th527Th486Th
Fr638Fr597Fr
Sa749Sa6108Sa
Su8510Su7119Su
      
Mo9611Mo81210Mo
Tu10712Tu91311Tu
We11813We101412We
Th12914Th111513Th
Fr131015Fr121614Fr
Sa141116Sa131715Sa
Su151217Su141816Su
      
Mo161318Mo151917Mo
Tu171419Tu162018Tu
We181520We172119We
Th191621Th182220Th
Fr201722Fr192321Fr
Sa211823Sa202422Sa
Su221924Su212523Su
      
Mo232025Mo222624Mo
Tu242126Tu232725Tu
We252227We242826We
Th262328Th252927Th
Fr272429Fr263028Fr
Sa282530Sa2729Sa
Su292631Su2830Su
      
Mo3027Mo2931Mo
Tu3128Tu30Tu
We29We31We
Th30ThTh

36 rows

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