¿Hay alguna forma para restar fechas sin tener q separar los campos de cada una en año, mes y día?
Si quiero restar, por ejemplo, dos fecha q tengo en $fecha y $fechar, puedo hacerlo directamente?
| |||
![]() ¿Hay alguna forma para restar fechas sin tener q separar los campos de cada una en año, mes y día? Si quiero restar, por ejemplo, dos fecha q tengo en $fecha y $fechar, puedo hacerlo directamente? |
| ||||
desde sql diferentes bases de datos proporcionan diferentes métodos. esta es una referencia de mysql http://dev.mysql.com/doc/mysql/en/da...functions.html si tienes problemas para usarla, pregunta concretamente con que función tienes el problema y que es lo que no entiendes. desde php igualmente tienes funciones como mktime() que con la ayuda de la función date() te permiten hacer operaciones frecuentes. http://mx.php.net/mktime http://mx.php.net/date saludos y suerte |
| |||
Bufff, la verdad es q no he entendido mucho... He intentado hacer algo con DATEDIFF, pero no lo consigo: $sqlf = mysql_query("SELECT FECHA FROM INCIDENCIA WHERE NUMERO LIKE '".$myrownum['NUMERO']."'", $servconex) or die(mysql_error()); $fecha = mysql_fetch_array($sqlf); $sqlfr = mysql_query("SELECT FECHA_RESPUESTA FROM INCIDENCIA WHERE NUMERO LIKE '".$myrownum['NUMERO']."'", $servconex) or die(mysql_error()); $fechar = mysql_fetch_array($sqlfr); $diferencia = mysql_query("SELECT DATEDIFF('".$fechar['FECHA_RESPUESTA']." 23:59:59', '".$fecha['FECHA']."')", $servconex) or die(mysql_error()); Al ejecutar este código me dice q tengo un error en la línea 1 'near' ('".$fechar['FECHA_RESPUESTA']." 23:59:59', '".$fecha['FECHA']."'). Vaya, q no me aclara nada. ¿Sabe alguien cómo puedo hacerlo? El valor q quiero obtener es la diferencia entre fecha y fecha_respuesta, almacenados en las variables $fecha y $fechar |
| |||
Nada, tampoco. Me da error en la sentencia SQL ($sql). ¿Todas las versiones de MYSQL implementan el método DATEDIFF? Igual es eso por lo q no me lo reconoce... No sé a q te refieres con eso de q postee la salida COMPLETA del navegador... :( |
| |||
Ah! Los valores de las fechas los coge bien, $fechar['FECHA_RESPUESTA'] y $fecha['FECHA'] tienen los valores de las fechas de las q quiero obtener la diferencia, por eso pienso q el problema pueda ser q la versión q tengo de MYSQL no entienda el método DATADIFF... |
| ||||
Por favor cuando te dé errores menciona EXACTAMENTE cuales son y muestra las líneas de tu código implicadas (el error dirá: on line X ![]() ... agrego que para usar estas funciones debes usar campos tipo DATE ó DATETIME que manejan un formato YYYY-MM-DD (parace no lo han mencionado)... y que la función DATEDIFF hayará la diferencia en días... Igual busca en los comentarios de las funciones que te dejó sism82 (y agrego www.php.net/strtotime ) que vienen buenos scripts... quizá con solo copiar y pegar ![]() Saludos! ![]()
__________________ ٩(͡๏̯͡๏)۶ "100 años después, la revolución no es con armas, es intelectual y digital" |
| |||
DATEDIFF() fue añadido para MYSQL 4.1.1, y la versión con la q trabajo es anterior, por tanto no me va a reconocer el comando. ¿Alguien sabe algo con lo q pueda conseguir el mismo resultado, sin usar DATADIFF()? |
| |||
Hola, yo para restar fechas hago lo siguiente: Convierto las fechas en formato UNIX $fecha1= strtotime ($fecha1); $fecha2 = strtotime ($fecha2); Y después las resto, dando el resultado en segundos. $resultado = ($fecha1 - $fecha2); Después hay que convertir esos segundos al formato que desees. Espero haber sido de ayuda. Un saludo. |
| ||||
... Igual podrías hacerlo con mktime() y para convertir esos segundos puedes hacer uso de la función date()... ó hacer las diviciones directamente ![]() Para las tres funciones (mktime(), strtotime() y date()) se te dejaron enlaces directos... Suerte! ![]()
__________________ ٩(͡๏̯͡๏)۶ "100 años después, la revolución no es con armas, es intelectual y digital" |