time, date
Permiten mostrar o capturar la fecha y hora
time devuelve la hora GMT medida como
el número de segundos desde el uno de Enero de 1970 00:00:00
GMT (hora del meridiano de Greenwich) obtenidos a partir
de la hora actual local del servidor
date muestra la fecha en el formato que se le indique
Ejemplo:
<?php
$time = time();
echo date("d-m-Y (H:i:s)", $time);
?>
Para representar el día de la semana:
Formato |
Significado |
Valores que devuelve |
d (minúscula) |
Día del mes, con 2 dígitos. Si es menor de 10, lleva un 0 inicial. |
01 a 31 |
D (mayúscula) |
Texto representativo del día, con 3 letras y en inglés |
Mon (lunes) hasta Sun (domingo) |
j (minúscula) |
Día del mes con un dígito (sin ceros iniciales) |
1 a 31 |
l (letra ele minúscula) |
Texto representativo del día, con todas las letras y en inglés |
Monday (lunes) hasta Sunday (domingo) |
N (mayúscula) |
Representación numérica del día de la semana según ISO-8601, siendo 1 el lunes y 7 el domingo |
1 (lunes) a 7 (domingo) |
S (mayúscula) |
Sufijo para el día del mes en inglés |
st, nd, rd o th |
w (minúscula) |
Representación numérica del día de la semana siendo 0 domingo y 6 el sábado |
0 a 6 |
z (minúscula) |
Día del año desde 0 hasta 365 (un año normal irá de 0 a 364) |
0 a 365 |
Para representar el mes:
Carácter de formato |
Significado |
Valores que devuelve |
F (mayúscula) |
Texto representativo del mes, con todas las letras y en inglés |
January (enero) a December (diciembre) |
m (minúscula) |
Mes en formato numérico con dos dígitos, incluyendo cero inicial si es menor que 10 |
01 hasta 12 |
M (mayúscula) |
Texto representativo del mes, con tres letras iniciales en inglés |
Jan (enero) hasta Dec (diciembre) |
n (minúscula) |
Mes en formato numérico con un dígito, sin ceros iniciales |
1 hasta 12 |
t (minúscula) |
Número de días que tiene el mes |
28 hasta 31 |
Para representar el año:
Carácter de formato |
Significado |
Valores que devuelve |
L (mayúscula) |
Indica si un año es bisiesto o no (1 si es bisiesto, 0 si no lo es) |
0 o 1 |
Y (mayúscula) |
Año en formato numérico de 4 dígitos |
1000 a 9999 |
y (minúscula) |
Año en formato numérico de 2 dígitos |
El que corresponda |
o (minúscula) |
Número de año según ISO-8601. En general devuelve el mismo resultado que Y mayúscula |
1000 a 9999 |
Para representar la hora:
Formato |
Significadom |
Valores que devuelve |
a (minúscula) |
Incluye am o pm en minúsculas detrás de la hora para indicar antes del meridiano o después del meridiano |
am o pm |
A (mayúscula) |
Igual que a pero en mayúsculas |
AM o PM |
B (mayúscula) |
Hora internet, también llamada Swatch Internet Time o Biel Mean Time (BMT), poco usada. |
000 a 999 |
g (minúscula) |
Número de hora desde 1 hasta 12 sin ceros iniciales |
1 a 12 |
G (mayúscula) |
Número de hora desde 0 hasta 23 sin ceros iniciales |
0 a 23 |
h (minúscula) |
Número de hora desde 01 hasta 12, con ceros iniciales |
01 a 12 |
H (mayúscula) |
Número de hora desde 00 hasta 23, con ceros iniciales |
00 hasta 23 |
i (minúscula) |
Minutos desde 00 hasta 59, con ceros iniciales |
00 a 59 |
s (minúscula) |
Segundos desde 00 hasta 59, con ceros iniciales |
00 a 59 |
Para representar la zona horaria:
Carácter de formato |
Significado |
Valores que devuelve |
e (minúscula) |
Representa la zona horaria en inglés (p.ej. GMT, America/Denver) |
Según corresponda |
I (letra i mayúscula) |
Indica si se está en horario de verano (0 indica que no se está en horario de verano, 1 que sí se está). |
0 o 1 |
O (letra o mayúscula) |
Indica la diferencia respecto a la zona horaria de Greenwich u hora GMT, en horas con cuatro dígitos y símbolo. |
Por ejemplo +0300 o -0500 |
P (mayúscula) |
Indica la diferencia respecto a la zona horaria de Greenwich u hora GMT, en horas con cuatro dígitos con separador dos puntos y símbolo. |
Por ejemplo +03:00 o -05:00 |
T (mayúscula) |
Abreviatura de la zona horaria (inglés) |
Según corresponda |
Z (mayúscula) |
Diferencia en segundos entre la hora utilizada y la hora UTC, con signo positivo o negativo |
-43200 hasta 50400 |
Además se dispone de:
La letra c minúscula para representar la fecha y hora completa en formato ISO-8601 (tipo 2089-03-12T12:19:21+03:00).
La letra r minúscula para representar la fecha y hora completa con formato RFC-2822 (tipo Mon, 21 Jan 2089 11:41:05 -0300).
Otras funciones para fecha, hora y tiempo PHP
PHP define otras funciones nativas para manejo de fechas, horas y tiempo
FUNCIÓN |
UTILIDAD |
EJEMPLOS |
mktime(hora,min, hora: 0 a 23 min y seg: 0 a 59 mes: 1 a 12 dia: 1 a 31 año: 4 dígitos |
Devuelve la hora UTC (GMT) para una fecha local indicada, expresada esta hora GMT en segundos (el número de segundos transcurridos desde el uno de enero de 1970 00:00:00 GMT, valores negativos indican momentos anteriores a esta fecha). Si faltan uno o más parámetros se tomarán los de la fecha local actual de derecha a izquierda. El valor obtenido depende de la hora local del servidor con el que estemos trabajando. |
echo "Tiempo Unix para el 15-Enero-2089 a las 12h 0m 0s = " . mktime(12,0,0,1,15,2089); // Tiempo Unix para el 15-Enero-2089 a las 12h 0m 0s = 3753975600 (el resultado variará según dónde esté localizado el servidor, porque las 12 h del 15 de enero de 2089 corresponden a distintas fechas-horas GMT según dónde se encuentre el servidor. |
Otras funciones para fecha, hora y tiempo PHP
PHP define otras funciones nativas para manejo de fechas, horas y tiempo
FUNCIÓN |
UTILIDAD |
EJEMPLOS |
gmmktime(hora,min, hora: 0 a 23 min y seg: 0 a 59 mes: 1 a 12 dia: 1 a 31 año: 4 dígitos |
Devuelve la hora UTC (GMT) expresada en segundos para una fecha GMT indicada en los argumentos recibidos. El valor devuelto es el número de segundos transcurridos desde el uno de enero de 1970 00:00:00 GMT, valores negativos indican momentos anteriores a esta fecha. Si faltan uno o más parámetros se tomarán los de la fecha GMT actual de derecha a izquierda. El valor obtenido no depende del servidor, ya que la hora GMT es única. |
gmmktime(12,0,0,1,15,2089) // 3756628800 independientemente de la hora local del servidor |
fopen
Sirve para abrir ficheros (archivos)
Sintaxis:
<?php
$fp = fopen(fichero, modoDeApertura);
?>
$fp es el descriptor o identificador del fichero abierto que se necesita posteriormente
fichero puede ser un archivo de texto, un archivo con extensión .php, o la URL de una página
Hay distintos modos de apertura de archivos:
Ejemplos:
<?php
$fp = fopen("/txt/fichero1.txt", "r");
$fp = fopen("/txt/fichero2.txt", "w");
$fp = fopen("http://www.um.es/docencia/barzana/texto.txt", "a+");
$fp = fopen("ftp://ftp.um.es/fichero3.txt", "w");
?>
Referencia en: PHP.net
fclose
Cierra un fichero abierto
Ejemplo:
<?php
$gestor = fopen('mifichero.txt', 'r');
fclose($gestor);
?>
fgets y feof
fgets() recupera el contenido de una línea de un archivo. Sintaxis:
<?php
fgets(descriptorDelFichero);
?>
Ejemplo:
<?php
// Lee la primera línea de fichero.txt
// fichero.txt está en el mismo directorio que el fichero php
// fichero.txt es un archivo de texto
$fp = fopen("fichero.txt", "r");
$linea = fgets($fp);
fclose($fp);
?>
Ejemplo:
<?php
// Lee por líneas el fichero.txt hasta llegar al fin (feof($fp))
// fichero.txt está en el mismo directorio que el fichero php
// fichero.txt es un archivo de texto normal
$fp = fopen("fichero.txt", "r");
while(!feof($fp)) {
$linea = fgets($fp);
echo $linea . "
";
}
fclose($fp);
?>
fputs
fputs() escribe una línea en un archivo. Sintaxis:
<?php
fputs(descriptorDelFichero, cadena);
?>
Ejemplo:
<?php
// Se escribe una primera línea en fichero.txt
// fichero.txt está en el mismo directorio que el fichero php
$fp = fopen("fichero.txt", "w");
fputs($fp, "Prueba de escritura");
fclose($fp);
?>
file_get_contents
Lee archivos completos. Sintaxis:
<?php
file_get_contents($ruta_del_fichero);
?>
Ejemplo:
<?php
$texto = file_get_contents("archivo.txt");
echo $texto;
?>
nl2br
Convierte los saltos de línea a etiquetas < br/>
Ejemplo:
<?php
$texto = file_get_contents("archivo.txt");
$texto = nl2br($texto);
echo $texto;
?>
file_get_contents
Obtiene el contenido de una página web en forma de código HTML, su código fuente
Ejemplo:
<?php
$texto = file_get_contents("http://www.escepticismo.es");
echo $texto;
?>
Permite enviar emails desde PHP
En caso de que se pueda enviar el email devuelve true, si no devuelve false
Sintaxis:
mail (string $a , string $asunto , string $mensaje
[, string $cabeceras_adicionales [, string $parametros_adicionales ]])
Parámetros:
to, correo del destinatario. En formato
RFC 2822
subject, título del mensaje
message, contenido del mensaje. Las líneas no deberán de ser de más de 70 caracteres
additional_headers, para modificar la cabecera del mensaje. Por cada cabecera se ha de añadir un CRLF (\r\n)
additional_parameters, para proporcionar parámetros adicionales al programa que envía el email
Ejemplo:
<?php
$para = 'publicidad@ru.com';
$titulo = 'Enviando correos desde PHP';
$mensaje = 'Este es el primer email que envío desde PHP';
$cabeceras = 'From: Rafa
Dirección de respuesta a un email con PHP
Para modificar la dirección de respuesta a un email con
PHP se han de modificar sus cabeceras
Las cabeceras de un mensaje de email deben de separarse mediante CRLF (\r\n)
Ejemplo:
$cabeceras = 'From: Rafa<rafa@gmail.com>' . "\r\n" .
'Reply-To: Otro <otros@um.com>';
Enviar email con formato HTML
La variable para el contenido tendrá asignado HTML puro
Ejemplo:
$mensaje = '<html>'.
'<head><title>Email con HTML</title></head>'.
'<body><h1>Email con HTML</h1>'.
'Esto es un email que se envía en el formato HTML'.
'<hr>'.
'Enviado por mi programa en PHP'.
'</body>'.
'</html>';
Aspectos avanzados
Sendmail ha de estar disponible en el servidor
Configuración en php.ini
Alternativa enviar mediante un servidor SMTP externo (ej.: Gmail)
Utilizar programa swiftmailer
El framework Laravel proporciona API para swiftmailer
Ejemplo de procesado de formulario
Acceder al sitio http://goo.gl/DSoMM0
Código del formulario
<div class="contenedor-formulario">
<div class="wrap">
<form action="enviar3.php" class="formulario" name="formulario_registro" method="POST">
<div>
<b><font color=navy>Datos contacto</b></font><br><br>
<div class="input-group">
<input type="text" id="nombre" name="nombre">
<label class="label" for="nombre">Nombre:</label>
</div>
<div class="input-group">
<input type="text" id="apellidos" name="apellidos">
<label class="label" for="apellidos">Apellidos:</label>
</div>
<div class="input-group">
<input type="email" id="correo" name="correo">
<label class="label" for="correo">Correo:</label>
</div>
Código del formulario
<div class="input-group">
<input type="text" id="telefono" name="telefono">
<label class="label" for="telefono">Teléfono:</label>
</div>
<div class="input-group">
<input type="text" id="telefono" name="telefono">
<label class="label" for="telefono">Teléfono:</label>
</div>
<b><font color=navy>Datos del Procedimiento</b></font><br><br>
<div class="input-group">
<input type="text" id="Jurisdiccion" name="Jurisdiccion">
<label class="label" for="Jurisdiccion">Jurisdicción:</label>
</div>
Código del formulario
<div class="input-group">
<input type="text" id="tipo_tribunal" name="tipo_tribunal">
<label class="label" for="tipo_tribunal">Tipo Tribunal o Juzgado:</label>
</div>
<div class="input-group">
<input type="text" id="clase_procedimiento" name="clase_procedimiento">
<label class="label" for="clase_procedimiento">Clase Procedimiento:</label>
</div>
<div class="input-group">
<input type="text" id="Cuantia" name="Cuantia">
<label class="label" for="Cuantia">Cuantía:</label>
</div>
<div class="input-group checkbox">
<input type="checkbox" name="pago_tasa" id="pago_tasa" value="true">
<label for="pago_tasa">Sujeto al pago de Tasa Judicial</label>
</div>
Código del formulario
<div class="input-group checkbox">
<input type="checkbox" name="embargo" id="embargo" value="true">
<label for="embargo">Anot. Prev. Embargo</label>
</div>
<div class="input-group checkbox">
<input type="checkbox" name="edictos" id="edictos" value="true">
<label for="edictos">Publicación Edictos</label>
</div>
<div class="input-group">
<input type="text" id="comentarios" name="comentarios">
<label class="label" for="comentarios">Comentarios</label>
</div>
<input type="submit" id="btn-submit" value="Enviar">
<input type="reset" value="Borrar">
</div>
</form>
</div>
</div>
Código de PHP para formulario
<?php
$nombre = $_POST['nombre'];
$correo = $_POST['correo'];
$apellidos = $_POST['apellidos'];
$header = 'From: ' . $correo . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";
$mensaje .= "Este mensaje fue enviado por " . $nombre . "\r\n";
$mensaje .= " " . $apellidos . "\r\n";
$mensaje .= "Su e-mail es: " . $correo . " \r\n";
$mensaje .= "Mensaje: " . $_POST['comentarios'] . " \r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time()) . " \r\n";
Código del formulario
$mensaje .= "Jurisdicción: " . $_POST['Jurisdiccion'] . " \r\n";
$mensaje .= "Tipo tribunal: " . $_POST['tipo_tribunal'] . " \r\n";
$mensaje .= "Clase procedimiento: " . $_POST['clase_procedimiento'] . " \r\n";
$mensaje .= "Cuantía: " . $_POST['cuantia'] . " \r\n";
$mensaje .= "Pago tasa: " . $_POST['pago_tasa'] . " \r\n";
$mensaje .= "Embargo: " . $_POST['embargo'] . " \r\n";
$mensaje .= "Edictos: " . $_POST['edictos'] . " \r\n";
$para = 'barzana@um.es';
$asunto = 'Enviado desde web';
mail($para, $asunto, utf8_decode($mensaje), $header);
echo 'Mensaje enviado correctamente';
header("location:http://www.procuradoresbelda.es");
?>
Tener todo el código para una página en un solo archivo crea problemas:
Complica el mantenimiento o modificación
Dificulta reutilizar el código
Dificulta utilizar códigos de terceros
Los lenguajes de programación permiten escribir código
en archivos e importarlos o llamarlos en el archivo que
sea necesario
Si se tiene código que se repite muchas veces, se soluciona con:
Include: PHP intenta cargar
el archivo solicitado, pero si no lo logra
encontrar muestra un error de tipo warning
Require: PHP intenta cargar el archivo, pero si no lo logra muestra un error de tipo fatal error
Include_once y Require_once: funcionan igual a las anteriores pero si se vuelve a llamar al mismo archivo dentro de un mismo script esta llamada es ignorada
/