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

202320242024202420242024
DecJanFebMarAprMay
      
Fr1Fr1Fr
Sa2Sa2Sa
Su3Su3Su
      
Mo41Mo41Mo
Tu52Tu52Tu
We63We631We
Th741Th742Th
Fr852Fr853Fr
Sa963Sa964Sa
Su1074Su1075Su
      
Mo1185Mo1186Mo
Tu1296Tu1297Tu
We13107We13108We
Th14118Th14119Th
Fr15129Fr151210Fr
Sa161310Sa161311Sa
Su171411Su171412Su
      
Mo181512Mo181513Mo
Tu191613Tu191614Tu
We201714We201715We
Th211815Th211816Th
Fr221916Fr221917Fr
Sa232017Sa232018Sa
Su242118Su242119Su
      
Mo252219Mo252220Mo
Tu262320Tu262321Tu
We272421We272422We
Th282522Th282523Th
Fr292623Fr292624Fr
Sa302724Sa302725Sa
Su312825Su312826Su
      
Mo2926Mo2927Mo
Tu3027Tu3028Tu
We3128We29We
Th29Th30Th
FrFr31Fr

36 rows

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