RE:convertir unn string a fecha
Si necesitas averiguar si un string es valido o no, te recomiendo que hagas tu propia función. Por que es muy variada la forma en que se puede escribir una fecha, y más en español, por ejemplo:
25/Enero/2006
25/Ene/2006
25/01/2006
25/1/2006
25/Enero/06
25/Ene/06
25/01/06
25/1/06
25-01-2006
25-1-2006
25-Ene-2006
25 de Enero de 2006
Y sin contar las formas mal escritas como:
25 de Enero del 2006
Antiguas, por ejemplo antes en méxico, el mes se ponia con números romanos:
25/I/2006
25/I/06
O por ejemplo la forma gringa que es él mes primero
01/25/06
Y las formas adornadas:
H. Veracrruz, Ver. a 25 de Enero de 2006.
Que significa:
Heroica Veracruz, Veracruz. a 25 de Enero de 2006.
Es la forma como se usa en mi ciudad, cuando quieres adornar la fecha.
Y la verdad ya me dio flojera seguirle, pero se me ocurren aún varias formas más.
Así que te aconsejo, que revieses como tienes tus fechas en las cadenas, y en base a eso hagas tu función. Puedes ir desde lo simple con sub_str, tomando los caracteres uno a uno, a lo facíl usando la función explode, o puedes irte a lo complejo usando expresiones regulares. Eso tu lo decides.
Lo más facil:
list($dia,$mes,$anio) = explode("/","25/1/2006");
Y ya luego solo verificas que la fecha este correcta. Es decir que no sea el mes 13 o el mes 0, y que no sea el día 45, o el año 50,000. Y si quieres validarlo más, revisas que Enero solo tenga 31 días, Febrero solo 28 (expeto en años viciestos), Marzo solo tenga 31, Abril solo 30,...., Diciembre solo 31
Saludos!
-
Miguel Angel
Mike79