======[PHP] date_reformat======
2 Funktionen zum umformatieren von Datumsstring
===== Funktion =====
/**
* umformatieren eines Datumsstrings anhand der date()-Formate
* @param String Datumsstring
* @param String Aktuelles Format. zB. 'd.m.Y H:i:s'
* @param String Neues Format. zB. 'm/d/Y'
* @return String Formatierts Datum anhand von $oldFomat
* @example
* echo date_reformat('14.10.2013 12:18:53', 'd.m.Y H:i:s', 'm/d/Y');
* return '10/14/2013'
*/
function date_reformat($string, $oldFormat, $newFormat){
return DateTime::createFromFormat($oldFormat, $string)->format($newFormat);
}
/**
* umformatieren eines Datumsstrings aus einem date()-Format in ein strftime()-Format
* Der Vorteil gegenüber date_reformat() ist, dass man im enuen Format it Texten arbeiten kann
* @param String Datumsstring
* @param String Aktuelles Format. zB. 'd.m.Y H:i:s'
* @param String Neues Format. zB. '%m/%d/%Y'
* @return String Formatierts Datum anhand von $oldFomat
* @example
* echo date_freformat('14.10.2013 12:18:53', 'd.m.Y H:i:s', '%d.%m.%Y ist der %j Tag im Jahr %Y');
* return '14.10.2013 ist der 287 Tag im Jahr 2013'
*/
function date_freformat($string, $oldFormat, $newFormat){
$timestamp = DateTime::createFromFormat($oldFormat, $string)->getTimestamp();
return strftime($newFormat, $timestamp);
}
Testcode
echo date_reformat('14.10.2013 12:18:53', 'd.m.Y H:i:s', 'm/d/Y');
echo '
';
echo date_freformat('14.10.2013 12:18:53', 'd.m.Y H:i:s', '%d.%m.%Y ist der %j Tag im Jahr %Y');
Ausgabe
10/14/2013
14.10.2013 ist der 287 Tag im Jahr 2013
{{tag>PHP Function Date}}