osamc.de/third_wednesday.php

61 lines
1.7 KiB
PHP

<?php
function nextThirdWednesday() {
// Set the default time zone to your desired one
date_default_timezone_set('Europe/Berlin');
$date = new DateTime( 'third wednesday of this month, 17:00' );
if( date_create()->diff( $date )->invert )
{
$date = new DateTime( 'third wednesday of next month, 17:00' );
}
if ($date->format('m') == '12') {
// If it's December, advance to January of the following year
$date->modify('third wednesday of January next year');
$date->modify('-1 day'); // not sure why.
}
$nextThirdWednesdayFormatted = $date->format('d.m.y');
return $nextThirdWednesdayFormatted;
}
function listNextElevenThirdWendesdays() {
date_default_timezone_set('Europe/Berlin');
//Start with the actual next meeting date, that is already calculated by another function already.
$date = new DateTime( 'third wednesday of this month, 17:00' );
if( date_create()->diff( $date )->invert )
{
$date = new DateTime( 'third wednesday of next month, 17:00' );
}
if ($date->format('m') == '12') {
// If it's December, advance to January of the following year
$date->modify('third wednesday of January next year');
$date->modify('-1 day'); // not sure why.
}
$result = "";
for ($i=0; $i < 11; $i++) {
$date->modify('third wednesday of next month');
//Again:
if ($date->format('m') == '12') {
// If it's December, advance to January of the following year
$date->modify('third wednesday of January next year');
$date->modify('-1 day'); // not sure why.
}
$result = $result . " " . $date->format('d.m');
}
return $result;
}
?>