Foros del Web » Programando para Internet » PHP »

Generar fechas incrementando una hora.

Estas en el tema de Generar fechas incrementando una hora. en el foro de PHP en Foros del Web. Hola, Necesito insertar en una tabla (en una base de datos mysql) varios registros a la vez de tipo date, para ello mediante un calendario ...
  #1 (permalink)  
Antiguo 05/01/2015, 14:20
 
Fecha de Ingreso: febrero-2012
Mensajes: 39
Antigüedad: 12 años, 2 meses
Puntos: 0
Generar fechas incrementando una hora.

Hola,

Necesito insertar en una tabla (en una base de datos mysql) varios registros a la vez de tipo date, para ello mediante un calendario se selecciona la fecha de inicio y la fecha final.

Me gustaría hacer una función que seleccionada la fecha de inicio se generaran fechas incrementándose en una hora hasta la fecha fin.

Por ahora buscando ejemplos he conseguido que me genere fechas aleatorias entre las dos fechas concretadas, pero no es eso lo que necesito.

Código:
private function getDate($options) {
		list($month, $day, $year) = explode("/", $options["from"]);
		$fromDate = mktime(0, 0, 0, $month, $day, $year);
		list($month, $day, $year) = explode("/", $options["to"]);
		$toDate = mktime(0, 0, 0, $month, $day, $year);

		// randomly pick a date between those dates
		$randDate = mt_rand($fromDate, $toDate);

		// display the new date in the value specified
		return date($options["formatCode"], $randDate);
	}
  #2 (permalink)  
Antiguo 05/01/2015, 16:02
Avatar de tomerqueves  
Fecha de Ingreso: marzo-2005
Ubicación: algeciras (cadiz)
Mensajes: 200
Antigüedad: 19 años, 1 mes
Puntos: 7
Respuesta: Generar fechas incrementando una hora.

Te explico pero no te lo puedo programar porque no entiendo muy bien que es lo quqe quieres.

La funcion tiene esta definición
string date ( string $format [, int $timestamp = time() ] )
osea devuelve string date
y recoje un string que dará el formato y un entero que es la hora actual que ademas es igual a la funcion time.

Si dentro de timestamp solo agregas un + 1 debería funcionar.

Porqué no puedo ayudarte con el código?
Pues porque no sé realmente si el timestam es un entero o en seugndos horas o minutos así que tendrías que hacer pruebas.

Yo estoy aburrido ultimamente y si quieres puedo ayudarte personalmente.
Sobre todo si tienes más dudas porque eso solo va a ser poco.

Tu estás usando las funcion getDate
y yo lo soluciono usando otra más basica que es la funcion Date.

Desconozco si habrá acceso al valor hora del array que devuelve getDate
pero es meterse en disquisiciones que no son el problema.
__________________
A todos los moderadores y admiinistradores. Si algun día me banean, por favor devolverme la carita de mi avatar
  #3 (permalink)  
Antiguo 05/01/2015, 16:16
 
Fecha de Ingreso: enero-2015
Ubicación: Cordoba, Andalucía
Mensajes: 111
Antigüedad: 9 años, 4 meses
Puntos: 15
Respuesta: Generar fechas incrementando una hora.

No se muy bien que pretendes pero he hecho esto:

$fecha_inicio='2015-01-01 10:00';
$fecha_final='2015-01-02 11:00';

$tiempo_1 = new DateTime($fecha_inicio);
$tiempo_2 = new DateTime($fecha_final);
$resta = $tiempo_1->diff($tiempo_2);
$formato= $resta->format('%d %h:%i:%s');
if ($formato != '0 0:00:00'){
$nueva_fecha= date("d H:i:s", strtotime("$fecha_inicio +1 hours"));
echo $nueva_fecha;}
  #4 (permalink)  
Antiguo 05/01/2015, 16:42
 
Fecha de Ingreso: febrero-2012
Mensajes: 39
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Generar fechas incrementando una hora.

Muchísimas gracias a los dos. A ver si puedo explicarme mejor para que se entienda exactamente lo que necesito:

Tengo una tabla llamada temperatura con tres columnas:

ID/FECHA/TEMPERATURA

ID: Sería un int que se autoincrementa.
Temperatura: Número aleatorio entre un rango de números.
Fecha: Fecha comenzando desde 2013-01-01 00:00:00 (por ejemplo) incrementándose en una hora hasta la fecha de ahora.

Quiero realizar un insert en la tabla de múltiples registros (tantos como horas haya desde la fecha de inicio a la fecha final). Para ello necesito una función (bucle) que me genere fechas partiendo de la fecha de inicio para la columna fecha y una función que me genere números aleatorios entre un rango de números para la columna temperatura (tantos como fechas haya) y se inserten en la base de datos.
  #5 (permalink)  
Antiguo 05/01/2015, 18:01
 
Fecha de Ingreso: enero-2015
Ubicación: Cordoba, Andalucía
Mensajes: 111
Antigüedad: 9 años, 4 meses
Puntos: 15
Respuesta: Generar fechas incrementando una hora.

La funcion que genera el numero de horas lo dejo para ti (ya la tienes medio preparada), la funcion que te genera el numero aleatorio igual.

Supongamos que la funcion que calculas las horas de como resultado 25, el bucle lo haría asi:

$horas=25;

while ($horas != 0){

#AQUI LANZA LA FUNCION QUE TE GENERE UN NUMERO ALEATORIO return $temperatura

$fecha= date("H:i:s", strtotime("$formato +$num hours"));
$sent = $mysqli->prepare("INSERT INTO tabla (fecha, temperatura) VALUES (?,?)");
$sent->bind_param('ss',$fecha,$temperatura);
$sent->execute();
$sent->close();

$num++;
$horas--;
}

Etiquetas: fecha, mysql, registro, tabla
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 13:29.