¿Comparar fechas C# con PHP?
Buenos días amigos, muchas gracias primero de todo por vuestra atención.
Estoy un poco estancada con un programa y necesito una ayudilla experta.
Resulta que un programa C.net está almacenando fechas en una base de datos como string y con el siguiente formato:
"16/12/2012 23:12:30"
La función de C# que almacena este dato desde el programa es: DateTime.Now.ToString();
Bien, el caso es que ahora tengo varios datos string de estas fechas y tengo que ordenarlos para ponerlos por orden temporal y en tema de fechas con PHP ando fatal por lo que solicito alguna pista a cualquiera que tenga experiencia con este tipo de acciones con fechas en PHP ya que a mi lo único que se me ocurre es tomar el string, hacer substr () para cada dato (d,m,Y h:m:s) así:
echo $dia= substr("16/12/2012 17:27:24", 0, 2);
Y luego crear una fecha mktime y compararlas entre si, pero claro, MENUDO TRABAJAZO.
Estoy segura de que existe algún tipo de función "sort" para ordenar estos datos desde un array o algo así.
Si el problema está en que lo que se almacena desde C# en string es complicado de manejar en PHP podría hablar con el programador del software para negociar una alternativa.
Qué me contáis?
Un millón de gracias.
solonova
Solo comentar que funcionó correctamente.
Gracias de nuevo Juanangt, el programa C.net será variado para almacenar la fecha de este modo y todo muy sencillo así.
solonova
Muchísimas gracias Juanangt, me ayuda mucho tu dato, porque esa fue en principio mi idea, ordenar directamente la cifra de fecha, pero claro como tiene el día primero es imposible, y pensaba que podría hacerlo si el formato fuera y/m/d ....
Abusando un poco de ti...cómo harías por ejemplo un ordenamiento de un array del tipo:
$fecha[0]= "2012-12-15 18:37:54";
$fecha[1]= "2012-12-16 15:12:23";
$fecha[2]= "2012-12-17 11:37:54";
Crees que un simple asort() puede ordenar esto correctamente? o los separadores pueden influir? Bueno voy a probar yo misma y cuento los resultados.
Mil gracias de nuevo.
Juanangt
Hola,
Si usas una versión de php superior a la 5 puedes usar la función DateTime::createFromFormat. Por ejemplo:
$date = DateTime::createFromFormat('Y-m-d', '2012-12-17');
De todas formas hay una cosa en el C# que no me gusta... cuando hace el "DateTime.Now.ToString()" no está especificando ningún formato por lo que si ese programa se ejecuta en un equipo que esté en inglés no lo guardara con el mismo formato por lo que podríais llegar a tener fechas en diferentes formatos...
Casi recomendaría cambiar el C# y que lo guarde en otro formato (por ejemplo Año-mes-día). Es decir:
DateTime.Now.ToString("yyyy-mm-dd HH:MM:ss");
A parte si guardas en formato año-mes-día... un orden de string siempre funcionará sin cambiar de formato a fecha....