PHP - convertir unn string a fecha

 
Vista:

convertir unn string a fecha

Publicado por diana (6 intervenciones) el 25/01/2006 16:25:11
necesito convertir un string en una variable a fecha o averiguar si el contenido de ese string es una fecha válida. Desde ya muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:convertir unn string a fecha

Publicado por Mike79 (669 intervenciones) el 25/01/2006 18:00:01
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
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar