how to get date for holidays using php

前端 未结 5 583
后悔当初
后悔当初 2020-12-14 08:38

For example the:

  1. 3rd Monday of January for Martin Luther King Day
  2. 3rd Monday of February for Presidents
5条回答
  •  长情又很酷
    2020-12-14 09:07

    Solution for moving holydays in Germany: returns an array of 'Y-m-d' formated strings including good friday, easter monday, ascencion, and pentecost monday. A new DateTime object for easter ist created for each day to enhance readability.

    function beweglicheFeiertage( int $year ):array
    {
        //Karfreitag - good friday
        $return = array();
        $easterDate = DateTime::createFromFormat('U', easter_date($year) );
        $easterDate->modify('- 1 days');
        $return[] = $easterDate->format('Y-m-d');
        //Ostermontag easter monday
        $easterDate = DateTime::createFromFormat('U', easter_date($year) );
        $easterDate->modify('+ 2 day');
        $return[] = $easterDate->format('Y-m-d');
        //Himmelfahrt ascencion
        $easterDate = DateTime::createFromFormat('U', easter_date($year) );
        $easterDate->modify('+ 40 days');//go to Ascencionday
        $return[] = $easterDate->format('Y-m-d');
        //Pfingstmontag - pentecost monday
        $easterDate = DateTime::createFromFormat('U', easter_date($year) );
        $easterDate->modify('+ 51 days');//go to Pentecost Monday
        $return[] = $easterDate->format('Y-m-d');
    
        return $return;
    }
    

提交回复
热议问题