Foros del Web » Programando para Internet » PHP »

Generar fechas

Estas en el tema de Generar fechas en el foro de PHP en Foros del Web. Hola Amigos: quiero hacer algo que no se si Mysql lo hacer, veamos. Quiero dar una cantidad de meses y que un script me lo ...
  #1 (permalink)  
Antiguo 11/08/2005, 14:45
 
Fecha de Ingreso: noviembre-2003
Mensajes: 499
Antigüedad: 20 años, 4 meses
Puntos: 7
Separar en meses

Hola Amigos:

quiero hacer algo que no se si Mysql lo hacer, veamos.

Quiero dar una cantidad de meses y que un script me lo separe en dichos meses, es decir, si yo digo son 12 meses que ese script me lo separe en Enero, Febrero, Marzo,........,con su cantidad de dias correspondientes, hay algo que haga esto ?.

Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 11/08/2005, 17:28
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
Quieres leer datos almacenados en una base de datos por fecha, y que los muestre por meses? o no entendí nada.
  #3 (permalink)  
Antiguo 11/08/2005, 18:57
 
Fecha de Ingreso: noviembre-2003
Mensajes: 499
Antigüedad: 20 años, 4 meses
Puntos: 7
Si en una base de datos puede ser, no tengo ni la mas remota idea de comoi se puede hacer
  #4 (permalink)  
Antiguo 11/08/2005, 21:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Deberías concretar para que necesitas generar esos "meses" .. por qué en extricto rigor .. si usas BD .. lo normal sería que si tu generas "N" Meses .. y han de quedar desglosados en sus N días por més (por si hay que operar con esos días por separado) sería que generes N registros en tu BD uno por día dentro del periodo que definas de inidicio fin. Por otro lado .. si sólo quieres ese dato de fecha a generar para algún tipo de validación .. no es neceario generar "N registros" uno por día .. sino que guardas simplemente tu inicio-fin (fechas) y calculas si se trata de validaciones si tal fecha solicitada está en ese rango definido.

De hecho .. no mencionas que BD usas .. pero por ejemplo Mysql ya dispone de funciones para calculo de fechas donde puedes de esa forma y sólo con SQL (nada de PHP en principio) generar esos N registros para esas N fechas.

No sé si con tanta N te aclaré algo el tema o te lié más .. pero intenta detallar que es lo que pretendes hacer .. así se verá como "solucionar" el problema.

Un saludo,
  #5 (permalink)  
Antiguo 12/08/2005, 07:47
 
Fecha de Ingreso: noviembre-2003
Mensajes: 499
Antigüedad: 20 años, 4 meses
Puntos: 7
Lo que dice Cluster se acerca bastante a lo que necesito.

Lo que necesito es hacer un control de pagos, entonces necesito que me indique que mes está pagando y que mes está impago, es por eso que necesito que sea por mes, ademas estos plazos son de 24 ó 36 meses segun el plan elegido. Es decir que sin usuario comienza un plan en el mes de agosto de 2005 , y el plan es de 24 meses, me tiene que indicar que su ultima cuota será en julio de 2007.

Está mas o menos claro ??
Si necesitan mas datos avisen y les serán aclarados
Gracias
  #6 (permalink)  
Antiguo 13/08/2005, 08:40
 
Fecha de Ingreso: noviembre-2003
Mensajes: 499
Antigüedad: 20 años, 4 meses
Puntos: 7
Eh amigos nadie me va a ayudar ??????
  #7 (permalink)  
Antiguo 13/08/2005, 12:12
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
Y tienes ya hecho el modelo de datos para gestionar esa informacion en una base de datos?
  #8 (permalink)  
Antiguo 13/08/2005, 12:34
 
Fecha de Ingreso: noviembre-2003
Mensajes: 499
Antigüedad: 20 años, 4 meses
Puntos: 7
Generar fechas

Hola:

Como puedo hacer para generar desde MYsql una cierta cantidad de fechas.
Es decir lo que se necesita es que a partir de una fecha X se generen 24 ó 36 fechas pero mensuales y consecutivas, ejemplo
Fecha 20050301, a partir de esta necesito que se generen automaticamente
20050301
20050401
20050501
20050601
.
.
.
y así sucesivamente hasta cubrir las 24 ó 36 necesarias.

Desde ya muchas gracias
  #9 (permalink)  
Antiguo 13/08/2005, 12:57
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
Necesitas dejar esos valores en un campo? actualizar el campo?
  #10 (permalink)  
Antiguo 13/08/2005, 14:35
 
Fecha de Ingreso: noviembre-2003
Mensajes: 499
Antigüedad: 20 años, 4 meses
Puntos: 7
Si necesito dejar grabado un registro y en la medida ques e vayan pagando cuotas ese registro se irá borrando, se podrá??
  #11 (permalink)  
Antiguo 14/08/2005, 00:10
 
Fecha de Ingreso: septiembre-2003
Ubicación: Sentado frente a un computador
Mensajes: 191
Antigüedad: 20 años, 7 meses
Puntos: 0
para lo primero

yo hago lo siguiente, y me funciona bien.

$y=2005;
$m=01;
$d=10; //estos son valores de ejemplo

$mifecha=date('$y-$m-$d');
echo ("La fecha es "); echo $mifecha;

si mandas a imprimir esto te quedaria algo como

La fecha es 2005-01-10,

luego en un for lo unico que tendrias que agregar es

$m=$m+1;

i obviamente la consulta

if ($m >12){
$m=1;
$y=$y+1;
}

ademas te conviene validar las fechas con checkdate ($mifecha), esto sobre todo para el caso de febrero y los dias con 30 dias.

en relacion a lo segundo, por supuesto que se puede, es solo un insert a una tabla.
en relacion a borrar los registros, no te lo recomiendo, ya que no podras recuperar la informacion de la fecha de pago de los clientes, es mejor moverla a una BD de respaldo
  #12 (permalink)  
Antiguo 14/08/2005, 02:16
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
... según entendí, no es más que generar un bucle:
Código PHP:
 // conectas, seleccionas BD
$total=24// el número de fechas que quieres crear (ignoro de dónde lo saques)

for($i=0$i<$total$i++) {
     
mysql_query("INSERT INTO tabla(campo_date) VALUES (DATE_ADD(CURDATE(), INTERVAL $i MONTH))");

Esto funciona así:
- Obtienes la fecha actual con CURDATE(), será tu "fecha inicial"; si quieres puedes sustituirlo por una variable de tipo $fecha_ini=" YYYY-MM-DD".
- Con DATE_ADD() le sumas un lapso de tiempo. En este caso ese lapso irá variando de acuerdo varie $i dentro del bucle, así primero sumas 0 meses, 1 mes, 2 meses... etc.
- Por la sentencia (INSERT) te va creando un nuevo registro por cada "nueva fecha generada"

... es lo que alcansé a entender, espero te sirva. Aclarar que con usando estas funciones no te tienes que preocupar de fechas no existentes (salvo que le des una fecha inicial correcta), el incremento de un mes será conforme a calendario (si inicias un día 31, la función guardará 30, 29 ó 28 en los meses que no alcansen los 31 días), ahora que si lo que quieres es ir sumando 30/31 días solo tendrías que cambiar el intervalo. Dejo enlace:
http://dev.mysql.com/doc/mysql/en/da...functions.html


(Tenias abiertos dos temas, fueron unidos)
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:08.