3v4l.org

run code in 300+ PHP versions simultaneously
<?php class PayDay { public function __construct($dmY = null) { $this->date = (is_null($dmY) ? new DateTime("midnight") : DateTime::createFromFormat('!d/m/Y', $dmY)); // ! for midnight $holiday_calendar = [ // import this data however you wish (object)["holiday" => "New Year's Day", "holidayDate" => "2018-01-01"], (object)["holiday" => "Republic Day", "holidayDate" => "2018-01-26"], (object)["holiday" => "Holi", "holidayDate" => "2018-03-02"] ]; $this->blacklist_holidates = []; if (!empty($holiday_calendar)) { foreach ($holiday_calendar as $obj) { $this->blacklist_holidates[$obj->holiday] = DateTime::createFromFormat('!Y-m-d', $obj->holidayDate); // ! for midnight } } $payroll_days_list = [ // import this data however you wish (object)["payrollDay" => "Mon", "isPayrollDay" => "Y"], (object)["payrollDay" => "Tue", "isPayrollDay" => "Y"], (object)["payrollDay" => "Wed", "isPayrollDay" => "Y"], (object)["payrollDay" => "Thu", "isPayrollDay" => "Y"], (object)["payrollDay" => "Fri", "isPayrollDay" => "Y"], (object)["payrollDay" => "Sat", "isPayrollDay" => "N"], (object)["payrollDay" => "Sun", "isPayrollDay" => "N"] ]; $this->blacklist_daynames = []; if (!empty($payroll_days_list)) { foreach ($payroll_days_list as $obj) { if ($obj->isPayrollDay == "N") { $this->blacklist_daynames[] = $obj->payrollDay; } } } } public function getPayDate() { while (in_array($this->date, $this->blacklist_holidates) || in_array($this->date->format("D"), $this->blacklist_daynames)) { $this->date->sub(new DateInterval('P1D')); } return $this->date->format("d/m/Y"); } } $input = "04/03/2018"; echo "Starting Date: $input\n"; $date = new PayDay($input); echo "Qualifying PayDate: ",$date->getPayDate();
Output for 8.2.0 - 8.2.29, 8.3.0 - 8.3.27, 8.4.1 - 8.4.15, 8.5.0 - 8.5.1
Starting Date: 04/03/2018 Deprecated: Creation of dynamic property PayDay::$date is deprecated in /in/UMUY7 on line 5 Deprecated: Creation of dynamic property PayDay::$blacklist_holidates is deprecated in /in/UMUY7 on line 12 Deprecated: Creation of dynamic property PayDay::$blacklist_daynames is deprecated in /in/UMUY7 on line 28 Qualifying PayDate: 01/03/2018
Output for 8.3.28
/bin/php-8.3.28: /usr/lib/libm.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.3.28) /bin/php-8.3.28: /usr/lib/libm.so.6: version `GLIBC_2.35' not found (required by /bin/php-8.3.28) /bin/php-8.3.28: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /bin/php-8.3.28) /bin/php-8.3.28: /usr/lib/libc.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.3.28)
Process exited with code 1.
Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33
Starting Date: 04/03/2018 Qualifying PayDate: 01/03/2018

preferences:
195.52 ms | 410 KiB | 5 Q