Contacto | #php_para_torpes | Enlázanos | ¿Quiénes somos?
38 usuarios Online (0)
Darse de alta en la web | Recuperar password   
Inicio / Foros / PHP / HAcer una funcion que devuelva dia-mes-anio
5 respuestas recibidas | 209 visitas | Categoría PHP

HAcer una funcion que devuelva dia-mes-anio

Avatar de elias1312
Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1

(Nivel 1 - 9 posts)

#0 Offline elias1312 Usuario 24 mar 08 (00:15)  
[php][/php]Hola foro necesito hacer una funcion que me devuelva como resultado el dia, el mes, y el año y mostrarlo en edits separados dejo aca parte del codigo para que me puedan ayudar.

$sql = "SELECT * FROM ENTIDADES WHERE ID_ENTIDAD = $buscado";
$q = ibase_query($sql);
$r = ibase_fetch_object($q);

}
$fecha_inscripto = $r-> FECHA_INSCRIPTO;
$dia=date("j");
$mes=date("n");
$anno=date("Y"); //descomponer fecha

$dia_insc=substr($fecha_inscripto, 8, 2);
$mes_insc=substr($fecha_inscripto, 5, 2);
$anno_insc=substr($fecha_inscripto, 0, 4);

echo $dia_insc;
echo $mes_insc;
echo $anno_insc;

$fecha_vcto = $r->FECHA_VCTO;
$dia_v=date("j");
$mes_v=date("n");
$anno_v=date("Y"); //descomponer fecha
$dia_venc=substr($fecha_vcto, 8, 2);
$mes_venc=substr($fecha_vcto, 5, 2);
$anno_venc=substr($fecha_vcto, 0, 4);
Simplemente lo quiero hacer para optimizar un poco el codigo. Desde ya muchas gracias.

debes darnos más datos

Avatar de jurena
Nivel 5 Nivel 5 Nivel 5 Nivel 5 Nivel 5 Nivel 5 Nivel 5

(Nivel 5 - 724 posts)

#1 Offline jurena Usuario 24 mar 08 (08:38)  
elias1312,
Es fácil hacer en PHP una función de ese tipo, por eso no te preocupes, pero conviene utilizar los recursos del mejor modo posible.
Una cosa es introducir los datos desde un formulario para cargarlos en la base de datos y otra traérselos desde la base de datos para mostrarlos. Si están en la base de datos bien incluidos en un campo DATE o DATETIME, por poner un par de casos, podrás recuperar año, mes y día sin recurrir a ninguna función PHP. Lo harás con DATE_FORMAT de MySQL.
SELECT DATE_FORMAT('1997-10-04 22:23:00', '%Y') AS ANO, DATE_FORMAT('1997-10-04 22:23:00', '%m') as mes, DATE_FORMAT('1997-10-04 22:23:00', '%d') as dia o también con YEAR(campofecha), MONTH(campofecha), etc.
naturalmente en lugar de una fecha concreta puedes poner el nombre del campo de fecha...
También puedes sumar y restar fechas sin problemas desde MySQL con otras funciones propias.
Otra cosa distinta es trabajar con datos escritos en un formulario o con una fecha ya cargada en PHP. Entonces, dependiendo del modo en que recoges las fechas en tu formulario y de lo que quieras hacer con ellas, deberás usar una de sus funciones u otras. Si cargas la fecha del servidor desde php y quieres ponerla como cadena puedes utilizar strftime. Muy útil casi siempre es convertir la cadena de texto a tiempo mediante mktime y hacer las operaciones necesarias en tiempo y luego mostrar con date de PHP los datos en el formato que desees. Pero deberías ser más concreto y decirnos cómo tomas o de dónde, o cómo escribes los datos, así como lo que quieres hacer con ellos, para buscar una función concreta que te haga el trabajo para ese caso. Son muchas las posibilidades

HAcer una funcion que devuelva dia-mes-anio

Avatar de elias1312
Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1

(Nivel 1 - 9 posts)

#2 Offline elias1312 Usuario 24 mar 08 (20:16)  
Jurena queria agradecerte por las respuestas voy a a ver si puedo implementar lo que me has dicho desde ya muchas gracias.

HAcer una funcion que devuelva dia-mes-anio

Avatar de jurena
Nivel 5 Nivel 5 Nivel 5 Nivel 5 Nivel 5 Nivel 5 Nivel 5

(Nivel 5 - 724 posts)

#3 Offline jurena Usuario 24 mar 08 (21:35)  
elias1312:
si necesitas alguna ayuda para hacerlo, vuelve a pedirla, ofrécenos los datos y trataremos de ayudarte

como poner null un campo Fecha

Avatar de elias1312
Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1

(Nivel 1 - 9 posts)

#4 Offline elias1312 Usuario 25 mar 08 (00:51)  
Jurena no entendi bien lo que me explicaste lo de los updates, te explico a ver lo que yo quiero hacer
resulta que yo en un formulario tengo dia mes y anio esos tres pertencen a fecha inscripcio y despues tengo tres mas que pertenecen a fecha de vto en edits separados bien lo que yo quiero hacer es por ejemplo cuando yo borro por ejemplo la fecha de vcto que me ponga null en el campo FECHA_VCTO de mi base de datos y lo mismo para inscripcion, puedo tener las dos fechas puedo tener una o no puedo tener ninguna.
aca :
$fecha_venc_dia =$_POST['fecha_venc_dia'];
$fecha_venc_mes =$_POST['fecha_venc_mes'];
$fecha_venc =$_POST['fecha_venc_anio'];

$fecha_ins_dia = $_POST['fecha_insc_dia'];
$fecha_ins_mes = $_POST['fecha_insc_mes'];
$fecha_ins_anio = $_POST['fecha_insc_anio'];

/*la variable $result_fecha_v y $result_fecha_i estan declaradas en las funciones que estan
declaradas en otra unidad*/
$consulta = "UPDATE ENTIDADES SET DENOMINACION = '$denominacion',
MATRICULA = '$matricula',
DOMICILIO = '$domicilio',
OBSERVACIONES = '$observaciones',
DESISTIDO = '$desistido',
DISOLUCION = '$disolucion',
RETIRO_PERSONERIA = '$retiro_personeria',
FECHA_INSCRIPTO = '$result_fecha_i',
FECHA_VCTO = '$result_fecha_v'
WHERE (ID_ENTIDAD = $id_entidad)";
$result = ibase_query($consulta,$conexion) or die ("ERROR EN EL UPDATE");
echo "La modificación de los datos se ha realizado correctamente";
}

if ($buscado != "")
{
$sql = "SELECT * FROM ENTIDADES WHERE ID_ENTIDAD = $buscado";
$q = ibase_query($sql);
$r = ibase_fetch_object($q);

}

$fecha_inscripto = $r-> FECHA_INSCRIPTO;
$dia=date("j");
$mes=date("n");
$anno=date("Y"); //descomponer fecha

$dia_insc=substr($fecha_inscripto, 8, 2);
$mes_insc=substr($fecha_inscripto, 5, 2);
$anno_insc=substr($fecha_inscripto, 0, 4);

echo $dia_insc;
echo $mes_insc;
echo $anno_insc;


$fecha_vcto = $r->FECHA_VCTO;
$dia_v=date("j");
$mes_v=date("n");
$anno_v=date("Y"); //descomponer fecha
$dia_venc=substr($fecha_vcto, 8, 2);
$mes_venc=substr($fecha_vcto, 5, 2);
$anno_venc=substr($fecha_vcto, 0, 4);

//$Guardar = $_POST['Guardar'];


echo '<html>';
echo '<header></header>';
echo '<body bgcolor="#0080C0">';
echo '<form method="POST" action="Entidades_Update2.php">';
echo '<table width="100%" border="1"><tr>';
echo '<td width ="10%">&nbsp&nbsp;<input type="text" size="5" name="buscado" alignment="MIDLE"><br><br>';
echo '<br>&nbsp;&nbsp;<input type="submit" name="Buscar" value="Buscar" align="MIDLE"></td>';
echo '<td width="90%">&nbsp;&nbsp;Denominacion:<br>&nbsp;&nbsp;<input type="text" size="100" name="denominacion" value="'.$r->DENOMINACION.'"</td><br>';
echo '&nbsp; Matricula:<br>&nbsp;&nbsp;<input type="text" name="matricula" size="10" value="'.$r->MATRICULA.'"< /td><br>';
echo '&nbsp; Domicilio: <br>&nbsp;&nbsp;<input type="text" size="50" name="domicilio" value="'.$r->DOMICILIO.'"</td><br>';
echo '&nbsp; Observaciones:<br>&nbsp;&nbsp;<textarea cols="40" rows="10" wrap="OFF" name="observaciones">'.$r->OBSERVACIONES. '</textarea><br>';
echo '&nbsp; Fecha de Inscripción: <br>&nbsp;&nbsp;<input type="text" size="4" name="fecha_insc_dias" maxlength="2" value="'.$dia_insc.'">';
echo '&nbsp;<input type="text" size="4" name="fecha_insc_mes" maxlength="2" value="'.$mes_insc.'">';
echo '&nbsp;<input type="text" size="4" name="fecha_insc_anio" maxlength="4" value="'.$anno_insc.'"><br>';

echo '&nbsp; Fecha de Vencimiento: <br>&nbsp;&nbsp;<input type="text" size="4" maxlength="2" name= "fecha_venc_dias" value="'.$dia_venc.'">';
echo '&nbsp;<input type="text" size="4" name="fecha_venc_mes" maxlength="2" value="'.$mes_venc.'">';
echo '&nbsp;<input type="text" size="4" name="fecha_venc_anio" maxlength="4" value="'.$anno_venc.'"><br>';
echo '<br><input type="submit" name="Guardar" value="Guardar">';
echo '<br><input type="hidden" name="id_entidad" value="'.$r->ID_ENTIDAD.'">';
echo '</td>';
echo '</form>';
echo '</tr></table>';
echo '</body>';
echo '</html>'[php][/php]

has cambiado el tema del post

Avatar de jurena
Nivel 5 Nivel 5 Nivel 5 Nivel 5 Nivel 5 Nivel 5 Nivel 5

(Nivel 5 - 724 posts)

#5 Offline jurena Usuario 25 mar 08 (09:22)  
elias1312,
has cambiado el tema del post y te has traído el de otro post. No debes hacer esto, pues llevarás a confusión a la gente del foro que trata de ayudarte y que no acudirá aquí creyendo que el tema sigue siendo el de la función de fecha. No obstante, te diré lo que opino, aunque en este punto quizás no pueda serte de mucha ayuda.
Quizás fuera conveniente que nos mostrases las funciones de fecha que te dan $result_fecha_v y $result_fecha_i o al menos nos dijeses cuál es el resultado de ellas cuando no escribes nada en alguno o en todos los campos de formulario. Por el momento, trataremos de hacerlo sobre los campos del formulario directamente, concretamente sobre el día. Lo primero es que veas que la consulta de actualización puede dividirse y condicionarse. Te he condicionado por día, es decir, si no pones el día de inscripción ni de vencimiento te grabará NULL en los campos FECHA_INSCRIPTO y FECHA_VCTO, respectivamente; pero si rellenas el día y no rellenas el mes ni el año, te dará problemas. Tendrás que decidir cuándo quieres que se envíe nulo, si cuando falta un dato, cuando faltan todos o cuándo. Para eso tal vez podríamos actuar más rápido sobre $result_fecha_v y $result_fecha_i (contando caracteres o de algún otro modo), pero necesitamos saber qué te trae esa función cuando no escribes uno de los datos. Incluso podrías controlar desde el cliente con javascript que no se pudiera avanzar sin rellenar todos o algunos de los campos de fecha, pero tampoco eso lo solucionaría todo, pues pudiera ocurrir que javascript estuviera bloqueado por el cliente y además, dicen, entraña ciertos riesgos. Hay un modo de hacerlo con PHP en el servidor guardando los datos escritos en variables de sesión, avisando cuando falta alguno necesario y volviendo a cargar los ya escritos, pero yo no sé hacerlo. En cualquier caso, te pongo una posible solución que sólo contempla el dato del día: si no se rellena el día o es borrado, escribirá NULL en tu base de datos. Primero debes entender el diferente valor de NULL y blanco, así como el método de división y condicionamiento de la consulta; luego ya podrás mejorar tu script con las correcciones pertinentes. Advertencia: no he probado la consulta


$fecha_venc_dia =$_POST['fecha_venc_dia'];
$fecha_venc_mes =$_POST['fecha_venc_mes'];
$fecha_venc =$_POST['fecha_venc_anio'];

$fecha_ins_dia = $_POST['fecha_insc_dia'];
$fecha_ins_mes = $_POST['fecha_insc_mes'];
$fecha_ins_anio = $_POST['fecha_insc_anio'];

/*la variable $result_fecha_v y $result_fecha_i estan declaradas en las funciones que estan
declaradas en otra unidad*/
$consulta = "UPDATE ENTIDADES SET DENOMINACION = '$denominacion', MATRICULA = '$matricula',
DOMICILIO = '$domicilio', OBSERVACIONES = '$observaciones', DESISTIDO = '$desistido', DISOLUCION = '$disolucion', RETIRO_PERSONERIA = '$retiro_personeria'"; //aquí corto la cadena de consulta para condicionar en la línea siguiente una parte
$consulta=($fecha_ins_dia !=NULL AND $fecha_ins_dia !='')? $consulta.", FECHA_INSCRIPTO = '$result_fecha_i'" : $consulta.", FECHA_INSCRIPTO = NULL";//condiciono y añado una parte a la consulta de actualización
$consulta=($fecha_venc_dia !=NULL AND $$fecha_venc_dia !='')? $consulta.", FECHA_VCTO = '$result_fecha_v'" : $consulta.", FECHA_INSCRIPTO = NULL";//condiciono y añado una parte a la consulta de actualización
$consulta.=" WHERE (ID_ENTIDAD = $id_entidad)";//añado el final a la consulta
$result = ibase_query($consulta,$conexion) or die ("ERROR EN EL UPDATE");
echo "La modificación de los datos se ha realizado correctamente";

Responder mensaje

Para poder participar debes estar registrado e identificado. Si no estás registrado como usuario de PHP-Hispano, :: Registrar ::
Login / Password   

Web alojada en Zilos

php-hispano.net 2002 - 2008 | XHTML 1.0
Datos Legales | Webmaster