Analizando cadenas de fecha localizadas en PHP

Tengo un código (es parte de un complemento de WordPress) que toma una cadena de texto y el especificador de formato dado a date (), e intenta analizarlo en una matriz que contiene hora, minuto, segundo, día, mes, año.

Actualmente, uso el siguiente código (tenga en cuenta que strtotime es terriblemente poco confiable con cosas como 01/02/03)

// $format contains the string originally given to date(), and $content is the rendered string
if (function_exists('date_parse_from_format')) {
    $content_parsed = date_parse_from_format($format, $content);
} else {
    $content = preg_replace("([0-9]st|nd|rd|th)","\\1",$content);
    $content_parsed = strptime($content, dateFormatToStrftime($format));
    $content_parsed['hour']=$content_parsed['tm_hour'];
    $content_parsed['minute']=$content_parsed['tm_min'];
    $content_parsed['day']=$content_parsed['tm_mday'];
    $content_parsed['month']=$content_parsed['tm_mon'] + 1;
    $content_parsed['year']=$content_parsed['tm_year'] + 1900;
}

En realidad, esto funciona bastante bien y parece manejar cada combinación que le he lanzado.

Sin embargo, recientemente alguien me dio24 Ноябрь, 2010. Esto es ruso para el 24 de noviembre de 2010 [el formato de fecha eraj F, Y], y se analiza como año = 2010, mes = nulo, día = 24.

¿Hay alguna función que pueda usar que sepa cómo traducir tanto noviembre como noviembre en 11?

EDITAR:

Corriendoprint_r(setlocale(LC_ALL, 0)); devolucionesC. Volviendo astrptime() parece solucionar el problema, pero los documentos advierten:

Internamente, esta función llama a la función strptime () proporcionada por la biblioteca C del sistema. Esta función puede exhibir un comportamiento notablemente diferente en diferentes sistemas operativos. Se recomienda el uso de date_parse_from_format (), que no sufre estos problemas, en PHP 5.3.0 y versiones posteriores.

Esdate_parse_from_format() la API correcta, y si es así, ¿cómo hago para que reconozca el idioma?

Respuestas a la pregunta(3)

Su respuesta a la pregunta