Mostrando entradas con la etiqueta php. Mostrar todas las entradas
Mostrando entradas con la etiqueta php. Mostrar todas las entradas

lunes, 13 de agosto de 2012

Sumar y Restar fechas en PHP

En muchas ocasiones necesitamos sumar o restar días, meses,años u horas a una fecha. La función que mejor se adapta a este tipo de requerimiento es mktime y strtotime.

mktime(): Funciona con el mismo algoritmo que utiliza Linux, es decir, genera horas Unix que son sinónimo de un número entero, esto permite poder comparar fechas.

strtotime(): Nos permite manipular fechas, restar y sumar días, meses o años.

Para restarle un día a una fecha, ver código de ejemplo:

<?php


$fecha_cambiada = mktime(0,0,0,date("m"),date("d")-1,date("Y"));
$fecha = date("d/m/Y", $fecha_cambiada);
echo $fecha; //devuelve fecha menos un día

?>




Como podemos ver con la función mktime podemos crear una fecha actual y restarle un día "date("d")-1";

Pero solo con eso obtendremos un número de varias cifras, para transformar eso en una fecha, con la función date creamos la fecha con formato d/m/Y.


Número aleatorio en PHP

Para conseguir un número aleatorio en PHP lo único que tenemos que hacer es utilizar la función rand();

El siguiente código explica claramente cómo se utiliza:

<?php
$numero_aleatorio = rand(1,100);
?>

La función rand asigna a la variable $numero_aleatorio un número entre 1 y 100 rand(1,100).

Luego podemos utilizar esta variable en lo que queramos, generalmente se utiliza un número random cuando queremos generar un código aleatorio, o mostrar imágenes de forma aleatoria.



Por ejemplo, para mostrar una imagen de forma aleatoria podemos hacer lo siguiente:

Si disponemos de 5 imágenes:


<?php
$numero_aleatorio = rand(1,5);
?>
<img src="<? echo 'img' . $numero_aleatorio . '.jpg'; ?>">

En este caso se asigna un número entre el 1 y el 5 aleatoriamente a la variable $numero_aleatorio y luego en la propiedad "src" del elemento img, se designa que el nombre del archivo a mostrar sea "img1.jpg" o "img2.jpg" y así hasta la imágen número 5.

Espero que les sirva, cualquier consulta, la contestaré a la brevedad.