old question but iv'e build a solution for comparing two dates (from german base like "9. Mai 2022") to US date format dynamically.
$post_date = get_field( "veranstaltung_datum", $veranstaltung->ID ); // e.g. "9. Mai 2022"
$post_date_month_de = preg_replace("/[^a-zA-Z]+/", "", $post_date); // isolate the month -> "Mai"
$post_date_month_en = replaceGermanMonth($post_date_month_de); // Switch replaces Month Name -> "May"
$post_date = date('Y-m-d', strtotime(str_replace($post_date_month_de, $post_date_month_en ,str_replace('.','', $post_date)))); // replace the "." and the "Mai" with "" and "May"
$post_date = strtotime($post_date); // convert in to ms since 01.01.1970
// get the current date in ms since 01.01.1970
$current_date = strtotime(date('Y-m-d'));
if ($current_date > $post_date) {
// add the magic
}
Here is the switch i use to change the Month:
function replaceGermanMonth($month) {
switch ($month) {
case 'Januar':
return "January";
break;
case 'Februar':
return "February";
break;
case "März":
return "March";
break;
case "April":
return "April";
break;
case "Mai":
return "May";
break;
case "Juni":
return "June";
break;
case "Juli":
return "July";
break;
case "August":
return "August";
break;
case "September":
return "September";
break;
case "Oktober":
return "October";
break;
case "November":
return "November";
break;
case "Dezember":
return "December";
break;
default:
break;
}
}