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

202420242024202420242024
MarAprMayJunJulAug
      
Mo1Mo1Mo
Tu2Tu2Tu
We31We3We
Th42Th41Th
Fr153Fr52Fr
Sa264Sa163Sa
Su375Su274Su
      
Mo486Mo385Mo
Tu597Tu496Tu
We6108We5107We
Th7119Th6118Th
Fr81210Fr7129Fr
Sa91311Sa81310Sa
Su101412Su91411Su
      
Mo111513Mo101512Mo
Tu121614Tu111613Tu
We131715We121714We
Th141816Th131815Th
Fr151917Fr141916Fr
Sa162018Sa152017Sa
Su172119Su162118Su
      
Mo182220Mo172219Mo
Tu192321Tu182320Tu
We202422We192421We
Th212523Th202522Th
Fr222624Fr212623Fr
Sa232725Sa222724Sa
Su242826Su232825Su
      
Mo252927Mo242926Mo
Tu263028Tu253027Tu
We2729We263128We
Th2830Th2729Th
Fr2931Fr2830Fr
Sa30Sa2931Sa
Su31Su30Su

35 rows

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