| Ver tema anterior :: Ver siguiente tema |
| Autor |
Mensaje |
xtremer Yo soy el foro

Registrado: 22 Dic 2006
Mensajes: 1113
|
Publicado: Vie Ene 29, 2010 11:14 pm Título del mensaje: PHP Fechas [AYUDA] |
|
|
Aver si me pueden ayudar q es importante saber esto pa mi, esta vez le saque mucho codigo para que lean lo preciso.
Qiero saber si suma bien los dias de las fecha de vto, acerca de agregar 1mes a la fecha actual, teniendo en cuenta los 28,29,30,31dias que aveces estan.
| Código: |
mysql_connect(" "," "," ");
mysql_select_db(" ");
function sumaMes($fecha,$mes){
list($year,$mon,$day) = explode('-',$fecha);
return date('Y-m-d',mktime(0,0,0,$mon+$mes,$day,$year));
}
$sql=mysql_query("SELECT * FROM pagos WHERE id>$id LIMIT 10 ");
$i=1;
if(mysql_num_rows($sql)>0){
while($reg=mysql_fetch_array($sql)){
// Nueva Fecha de VTO +30 DIAS
$XFecha=$reg['fecha_vto'];
$SumarFechaVto=sumaMes($XFecha,1);
$ano1=date('Y');$mes1=date('m');$dia1=date('d');
$ano2=substr($XFecha,0,4);$mes2=substr($XFecha,6,2);$dia2=substr($XFecha,9,2);
$timestamp1=mktime(0,0,0,$mes1,$dia1,$ano1);
$timestamp2=mktime(4,12,0,$mes2,$dia2,$ano2);
$segundos_diferencia=$timestamp1-$timestamp2;
$dias_diferencia=$segundos_diferencia / (60 * 60 * 24);
$dias_diferencia=abs($dias_diferencia);
$dias_diferencia=floor($dias_diferencia);
$xtest=substr($dias_diferencia,0,3);
if($xtest<5){
$valor2="
<div>".$dias_diferencia." dias</div>";
}
if($xtest>5){
$valor2="
<div>".$dias_diferencia." dias</div>";
}
echo "
<div>
<input type=radio name='AgregarF$i' value='1' onFocus='this.blur()'>
<input type=radio name='AgregarF$i' value='0' checked='checked' style='display:none;' onFocus='this.blur()'>
</div>";
echo "<div>".$SumarFechaVto."</div>";
$sql=mysql_query("UPDATE pagos SET importe='$p_importe', pagado='$p_pagado', fecha_vto='$p_fechita' WHERE id=$id");
if(mysql_num_rows($sql)<1){
echo "Registro actualizado...!";
}else{
echo "Registro no actualizado...!";
}
|
_________________
GameServers & WebHosting Provider |
|
| Volver arriba |
|
 |
Dragon-Black Yo soy el foro


Registrado: 19 May 2006
Mensajes: 2974
Ubicación: Pregúntale a tu servidor de DNS.
|
Publicado: Sab Ene 30, 2010 2:25 am Título del mensaje: |
|
|
No entendí.. quieres sumar días o meses ¿?...
Si es días, puedes modificar tu función sumarMeses..
| Código: |
<?
function sumaDias($fecha,$dias){
list($year,$mon,$day) = explode('-',$fecha);
return date('Y-m-d',mktime(0,0,0,$mon,$day,$year)+$dias*86400);//86400 son los segundos de un día
}
?> |
_________________ Cuando bebas agua, recuerda la fuente
http://Blog.onZeroPK.es
Folow me on Twitter
Joder, It's My life !!!! |
|
| Volver arriba |
|
 |
xtremer Yo soy el foro

Registrado: 22 Dic 2006
Mensajes: 1113
|
Publicado: Sab Ene 30, 2010 12:08 pm Título del mensaje: |
|
|
nono yo antes ya la vi esa function, pero la modifique con la intencion que sume 1mes, ya que la fecha de vto de las facturas sera con el agregado de 1mes y no 30dias exactos.
Digo 1mes ya que de esta forma quiero que me sume de forma automatica los 28,29,30,31dias dependiendo de la fecha que se trate . _________________
GameServers & WebHosting Provider |
|
| Volver arriba |
|
 |
Dragon-Black Yo soy el foro


Registrado: 19 May 2006
Mensajes: 2974
Ubicación: Pregúntale a tu servidor de DNS.
|
Publicado: Sab Ene 30, 2010 6:30 pm Título del mensaje: |
|
|
no entiendo que haces en la parte de abajo, fuera del metodo.. explicas? _________________ Cuando bebas agua, recuerda la fuente
http://Blog.onZeroPK.es
Folow me on Twitter
Joder, It's My life !!!! |
|
| Volver arriba |
|
 |
xtremer Yo soy el foro

Registrado: 22 Dic 2006
Mensajes: 1113
|
Publicado: Sab Ene 30, 2010 6:37 pm Título del mensaje: |
|
|
En que parte?
Esta parte? o cual? o la de abajo de todo antes de insertar?
| Código: |
$xtest=substr($dias_diferencia,0,3);
if($xtest<5){
$valor2="
<div>".$dias_diferencia." dias</div>";
}
if($xtest>5){
$valor2="
<div>".$dias_diferencia." dias</div>";
}
|
_________________
GameServers & WebHosting Provider |
|
| Volver arriba |
|
 |
Dragon-Black Yo soy el foro


Registrado: 19 May 2006
Mensajes: 2974
Ubicación: Pregúntale a tu servidor de DNS.
|
Publicado: Sab Ene 30, 2010 6:39 pm Título del mensaje: |
|
|
me refiero a todo lo que hay abajo de la función.. una descripción breve, por cierto creo que te falta una o dos llaves _________________ Cuando bebas agua, recuerda la fuente
http://Blog.onZeroPK.es
Folow me on Twitter
Joder, It's My life !!!! |
|
| Volver arriba |
|
 |
xtremer Yo soy el foro

Registrado: 22 Dic 2006
Mensajes: 1113
|
Publicado: Sab Ene 30, 2010 6:52 pm Título del mensaje: |
|
|
Si, talvez, xq como corte mucho codigo para mostrar xD talvez me comi alguna llave. Con respecto a lo que me dices ya te entendi.. xD
Lo que hace es..
1-Sacar la diferencia de dias que faltan para que se cumpla la fecha de vto, es decir restar la fecha actual y la fecha de vto, para que me muestre cuantos dias restan para que se cumpla.
En caso de que el nro de dias sea inferior a "5" se muestre la letra de color rojo, caso contrario muestre color comun (eso no aparece xq sake todo el css)
2-Un boton en el cual puedo agregar una nueva fecha de vto, con solo tildar el radio que se muestra, lo hice de esta manera para no marcar errores debido a que son muchos los campos que se muestran, y de otra manera marca errores y hace otra cosa, y fue la forma mas adecuada que me parecio.
Finalmente ingreso los datos, actualizando los datos que yo escogi.
Los que no tilde no se cambian porque hay un "checked" con php, que verifica si el campo en MYSQL es valor 0 o 1, que es como si fuera true o false, si es 1 ej. va a estar tildado tal campo, caso contrario el otro. De tal manera que no actualize todos los datos, sino solo el que quiera cambiar. _________________
GameServers & WebHosting Provider |
|
| Volver arriba |
|
 |
xtremer Yo soy el foro

Registrado: 22 Dic 2006
Mensajes: 1113
|
Publicado: Vie Feb 05, 2010 3:01 pm Título del mensaje: |
|
|
Me pueden ayudar plis?
Es solo saber si la funcion anda correctamente
| Código: |
function sumaMes($fecha,$mes){
list($year,$mon,$day) = explode('-',$fecha);
return date('Y-m-d',mktime(0,0,0,$mon+$mes,$day,$year));
}
|
Es decir si la fecha es 28,29,30 o 31 si suma bien el MES para hacer la fecha de vto, porque la fecha de vencimiento que estoy estimando es sumado 1mes a la fecha actual.
Ej. Si yo compre el dia 5/02/10 la fecha de vto seria 5/03/10
Algo asi me refiero, espero q me puedan ayudar es importante. _________________
GameServers & WebHosting Provider |
|
| Volver arriba |
|
 |
BenJa - KuMo Yo soy el foro


Registrado: 14 Ago 2006
Mensajes: 3489
Ubicación: España
|
Publicado: Sab Feb 06, 2010 6:50 pm Título del mensaje: |
|
|
Si haces el script cuando se compre, pones date("d-m-Y") para la actual y para calcular la de vencimiento haces una función que según sean los meses que se contrate, más sumando meses, cuando se llegue al 12, sumas 1 año y empieza por el mes 1 otra vez. La devolución de esa función que sea un string con la fecha ya formateada. _________________
Web de Metal Slug y Kof!!
Web en Español de Project Zero!! |
|
| Volver arriba |
|
 |
|
|
|