Artículos
HTML5

Elemento rango en formularios HTML5

Creado: 31/Ene/2012 Actualizado: 09/Ene/2025

Una de las novedades que tenemos dentro de los formularios HTML5 son los elementos input de tipo rango. Estos elementos son unos sliders que nos permiten seleccionar un valor desplazando un puntero sobre el slider.

Para crear un elemento de tipo rango en formularios HTML5 tenemos que crear un elemento input de tipo range de la siguiente forma:

<input type="range">

Sobre este elemento podemos definir varios valores. En primer lugar el valor máximo y mínimo del rango. Esto lo haremos mediante los atributos min y max.

<input max="10" min="0" type="range">

De igual manera podemos definir los valores del incremento, es decir, cada vez que desplazamos el puntero en cuanto se incrementará o decrementará el valor del elemento. Este atributo es step. Así si queremos que se incremente de uno en uno definiremos el elemento rango de la siguiente forma:

<input id="mislider" max="10" min="0" step="1" type="range" value="3"></input>

Los elementos de tipo rango están disponibles vía Javascript. Es decir, podemos acceder a su modelo DOM y consultar el valor que tiene el rango en cualquier momento. Bastará solo con consultar el valor del atributo value.

Por ejemplo, si queremos calcular el valor que tiene el rango cada vez que se modifique podemos crear un listener sobre el evento onchange de dicho rango con el método addEventListener.

var barra = document.getElementById("mislider");
barra.addEventListener("change",function(ev){	
  var resultado = document.getElementById("valor");
  resultado.innerHTML = ev.currentTarget.value;	
},true);

Vemos que cuando utilizamos el método addEventListener el objeto evento que se le pasa a la función lleva la referencia al elemento que generó el evento en el campo currentTarget.

Solo hay que tener en cuenta una cosa al utilizar el elemento range en formularios HTML5 y esto es el soporte de los navegadores, ya que todavía todos no lo dan.

Vídeos sobre HTML5

Disfruta también de nuestros artículos sobre HTML5 en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test HTML5

¿Te atreves a probar tus habilidades y conocimiento en HTML5 con nuestro test?

Test HTML5
Artículos
Javascript

Comparar con la fecha del sistema en Javascript

Creado: 30/Ene/2012 Actualizado: 29/May/2015

Comparar con la fecha del sistema en Javascript nos sirve para saber la diferencia de fechas entre el día de hoy y otra fecha. Esto nos serviría desde casos en los que queramos saber hace cuanto tiempo publique esta entrada en el blog, o cuánto queda para el día de mi cumpleaños o cuánto queda hasta año nuevo.

Realmente lo que estamos haciendo es restar dos fechas en Javascript, la que nos da el usuario contra la fecha del sistema.

Para obtener la fecha del sistema simplemente instanciaremos un objeto Date.

fecha = new Date();

Ahora cogeremos la fecha del usuario. Para ello ya vimos en el ejemplo de cómo convertir una cadena de texto en una fecha los pasos que teníamos que seguir:

var boton = document.getElementById("calcular");
boton.addEventListener("click",function(ev){
                
  dia = document.getElementById("dia").value;
  mes = document.getElementById("mes").value;
  annio = document.getElementById("annio").value;
        
  fecha_texto = annio+"-"+mes+"-"+dia;

  ms = Date.parse(fecha_texto);
  fecha2 = new Date(ms);
        
},false);

Ahora toca la resta, para ejecutar la resta convertimos previamente la dos fechas en milisegundos con el método .getTime(). A este valor lo dividimos por los milisegundos que representan un día (1000 ms * 60 segundos * 60 minutos * 24 horas).

Por último realizaremos un redondeo apoyándonos en el método .ceil() del objeto Math de Javascript.

one_day=1000*60*60*24;
diferencia = Math.ceil((fecha.getTime()-fecha2.getTime())/(one_day));
texto = (diferencia>0)?"Hace " + diferencia:"Dentro de " + (diferencia*-1);

Utilizaremos el operador ternario para adecentar nuestra respuesta y diferenciar si la fecha paso (resultado positivo) o todavía no hemos llegado (resultado negativo).
Ya tenemos nuestra comparación con la fecha del sistema en Javascript.

Código Fuente

Descárgate el código fuente de Comparar con la fecha del sistema en Javascript
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Vídeos sobre Javascript

Disfruta también de nuestros artículos sobre Javascript en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Javascript

¿Te atreves a probar tus habilidades y conocimiento en Javascript con nuestro test?

Test Javascript
Artículos
Javascript

Convertir una cadena a fecha en Javascript

Creado: 29/Ene/2012 Actualizado: 28/May/2015

En este ejemplo vamos a ver cómo podemos convertir una cadena a una fecha, es decir un elemento Date, en Javascript. A primeras parece que pensar que es algo tan trivial como pasarselo en la inicialización. Pero veremos que tenemos ciertas restricciones.

Y es que en el fondo, sí, podemos escribir la siguiente línea de código:

var fecha = new Date("Sat, 4 Feb 2012");

Pero, ¿qué podemos utilizar como cadena de texto? Lo que podemos utilizar es todo aquello que podamos analizar mediante el método .parse() del objeto Date.

Date.parse(cadena);

Y si miramos qué soporta el método .parse() veremos que el texto que le pasemos tiene que estar en formato RFC822 o ISO 8601. Así el método nos devolverá los milisegundos desde el 1 de enero de 1970.

Si no te apetece leerte que dicen los estándares RFC822 y ISO 8601 te lo resumiremos en que tienen que ser fechas en formato:

dia_semana, dia hora
yyyy-mm-dd

Y formatos similares. Así el 4 de febrero del 2012 podría declararse como:

Sat 4 Feb 2012 12:20:34
2012-02-04

Nosotros, para evitar formateos adicionales vamos a montar la fecha por nuestra cuenta, así que utilizaremos un formulario para pedirle al usuario los datos. El formulario será el siguiente:

/ /

Y ahora, controlando el evento de pulsar sobre el botón, es decir, utilizando un addEventListener()

var boton = document.getElementById("calcular");
boton.addEventListener("click",function(ev){
  ...	
},false);

Vamos a componer nuestra fecha. Obtenemos los valores del formulario y componemos la fecha en formato yyyy-mm-dd

dia = document.getElementById("dia").value;
mes = document.getElementById("mes").value;
annio = document.getElementById("annio").value;
fecha_texto = annio+"-"+mes+"-"+dia;

Lo siguiente será parsearla y crear una fecha (aunque podríamos haber hecho solo lo segundo)

ms = Date.parse(fecha_texto);
fecha = new Date(ms);

Por último volcamos el contenido del Date a un campo y bloqueamos que se lance el evento del botón con .preventDefault() para poder ver el resultado y no enviar el formulario.

document.getElementById("fecha").innerHTML = fecha;
ev.preventDefault();

El código entero del manejador quedaría de la siguiente forma:

var boton = document.getElementById("calcular");
boton.addEventListener("click",function(ev){
		
	dia = document.getElementById("dia").value;
	mes = document.getElementById("mes").value;
	annio = document.getElementById("annio").value;
	
	fecha_texto = annio+"-"+mes+"-"+dia;
	
	ms = Date.parse(fecha_texto);
	fecha = new Date(ms);
	
	document.getElementById("fecha").innerHTML = fecha;
	ev.preventDefault();
	
},false);

Código Fuente

Descárgate el código fuente de Convertir una cadena a fecha en Javascript
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Vídeos sobre Javascript

Disfruta también de nuestros artículos sobre Javascript en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Javascript

¿Te atreves a probar tus habilidades y conocimiento en Javascript con nuestro test?

Test Javascript
Artículos
Javascript

Convertir segundos en formato hora con Javascript

Creado: 23/Ene/2012 Actualizado: 28/May/2015

Ciertos sistemas o propiedades nos pueden dar datos en formato de segundos. Si estamos en ese caso y queramos convertir segundos en formato hora con Javascript deberemos de seguir los siguientes pasos.

Lo primero será guardar en una variable los segundos:

segundos = 1341;

Ahora instanciaremos un objeto de Tipo Date. La inicialización del objeto Date es mediante milisegundos, por lo que necesitaremos multiplicar por 1000 nuestro valor en segundos.

var d=new Date(segundos*1000);

Ahora solo tenemos que acceder a los métodos del objeto Date. Al .getHours(), getMinutes() y getSeconds(). Estos nos dará los valores en formato hora.

var hora = (d.getHours()==0)?23:d.getHours()-1;
var hora = (hora<9)?"0"+hora:hora;
var minuto = (d.getMinutes()<9)?"0"+d.getMinutes():d.getMinutes();
var segundo = (d.getSeconds()<9)?"0"+d.getSeconds():d.getSeconds();

De este código hay que fijarse en dos cosas. La primera es que el valor de la hora retornará una hora más de la que realmente es. Es por ello que hacemos la corrección.

var hora = (d.getHours()==0)?23:d.getHours()-1;

Y lo segundo en lo que debemos de fijarnos es en el uso del operador ternario para poner los minutos, segundos y horas en un formato de dos dígitos. Y es que los valores inferiores al 10 siempre vendrán solos. Es decir, 1, 2, 3, 4,... cuando nosotros queremos poner 01, 02, 03, 04,...

Solo quedará volcar el contenido y añadir los dos puntos:

document.write(hora+":"+minuto+":"+segundo);

Ya hemos visto que con el uso del objeto Date hemos conseguido convertir segundos en formato hora con Javascript.

Código Fuente

Descárgate el código fuente de Convertir segundos en formato hora con Javascript
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Vídeos sobre Javascript

Disfruta también de nuestros artículos sobre Javascript en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Javascript

¿Te atreves a probar tus habilidades y conocimiento en Javascript con nuestro test?

Test Javascript
Artículos
HTML5

Controlar un error de carga de un vídeo en HTML5

Creado: 22/Ene/2012 Actualizado: 09/Ene/2025

¿Por qué cuando se carga mi página web en HTML5 no se ve el vídeo? ¿Cómo puedo controlar un error de carga de un vídeo en HTML5? Estas pueden ser algunas de las preguntas que nos hagamos cuándo vemos que nuestros vídeos no están funcionando.

Si queremos controlar un error en un elemento de vídeo en HTML5 lo primero que tenemos que hacer es suscribirnos al evento error del vídeo. Para ello utilizaremos un escuchador o addEventListener sobre el elemento HTMLMediaElement que represente nuestro vídeo.

Así, si nuestro vídeo es:

<video id="mivideo" controls="controls" width="300" height="150">
	<source src="videonoexiste.ogv" type="video/ogg">
	Tu navegador no soporta el elemento <code>video</code>
</video>

Para suscribirnos al evento error del vídeo lo haremos mediante la siguiente línea de código:

v.addEventListener("error",function(ev){
  alert("Error");
},true);

Cuando salte un error sobre el vídeo se ejecutará el contenido de la función. Pero si queremos ser más concretos en el análisis del error podemos comprobar el valor de la variable networkState. Esta variable representa la interacción entre el vídeo y la red.

Si el valor de networkState es igual NETWORK_NO_SOURCE eso significa que no se ha podido encontrar el origen del vídeo. Así modificaremos el código de nuestra gestión de errores para controlar un error de carga de un vídeo en HTML5:

v.addEventListener("error",function(ev){
  logError("Error en el vídeo");	
  if (ev.currentTarget.networkState == ev.currentTarget.NETWORK_NO_SOURCE){
    logError("No encontrado el origen del vídeo");
  }		
},true);

Vídeos sobre HTML5

Disfruta también de nuestros artículos sobre HTML5 en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test HTML5

¿Te atreves a probar tus habilidades y conocimiento en HTML5 con nuestro test?

Test HTML5
Artículos
HTML5

Parar la descarga de un vídeo en HTML5

Creado: 21/Ene/2012 Actualizado: 09/Ene/2025

Cuando cargamos un vídeo en HTML5 el navegador buscará el origen del vídeo, comprobará si puede visualizar el tipo de vídeo que se le indica como origen y validará si los codecs son correctos. Un vez hecho eso empezará la descarga del vídeo, es decir, empezará a descargar el contenido del vídeo hasta el final del mismo.

Pero qué pasa si no queremos seguir visualizando el vídeo, si queremos parar la descarga con el fin de que no se consuma ancho de banda de nuestra conexión.

Veamos como hacerlo. De primeras veremos que en el DOM nos encontramos el elemento HTMLMediaElement con un método .pause(). Si ejecutamos dicho método solo pararemos la ejecución del contenido multimedia, pero no se parará la descarga del vídeo, es decir, la imagen la veremos congelada, pero el navegador seguirá descargándose el contenido.

var v = document.getElementById("mivideo");
v.pause();

Pero para poder parar la descarga de un vídeo en HTML5 no nos valdrá solo con el método .pause(), si no que tenemos que jugar con el atributo .src, al cual desasignaremos el valor, es decir, le daremos el valor de una cadena vacía. Una vez parado el vídeo y desasignado el valor de su atributo .src conseguiremos parar la descarga.

var v = document.getElementById("mivideo");
v.pause();
v.src="";

En el caso de Firefox no sirve solo con desasignar la cadena .src, si no que tendremos que realizar la carga del nuevo valor mediante el método .load(). Esto producirá que se envíe el evento abort del HTMLMediaElement. Si bien habremos conseguido parar la descarga de un vídeo en HTML5.

var v = document.getElementById("mivideo");
v.pause();
v.src="";
v.load();

Vídeos sobre HTML5

Disfruta también de nuestros artículos sobre HTML5 en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test HTML5

¿Te atreves a probar tus habilidades y conocimiento en HTML5 con nuestro test?

Test HTML5
Artículos
Java

Obtener directorio padre de un fichero

Creado: 20/Ene/2012 Actualizado: 29/Dic/2014

En este ejemplo vamos a ver como obtener directorio padre de un fichero con Java. Es decir, el directorio del cual depende el fichero que instanciemos.

Lo primero será instanciar un fichero mediante la clase File.

File fichero = new File("test.txt");

Ahora se podría pensar que es tan sencillo como utilizar el método .getParent() y ya obtendríamos el directorio padre del fichero. Es decir, que el siguiente código:

fichero.getParent();

Ya nos retornará el directorio. Pero, por desgracia, no funciona ya que no hemos instanciado el fichero con un path y por lo tanto el método .getParent() devolverá null.

Así que, dado el fichero text.txt, vamos a obtener su ruta absoluta mediante .getAbsolutePath() e instanciaremos el fichero.

File fichero = new File("test.txt");
File fichero2 = new File(fichero.getAbsolutePath());		
System.out.println("El directorio padre del fichero es " + fichero2.getParent());

Con esas líneas ya podremos obtener directorio padre de un fichero con Java.

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Artículos
Java

Obtener fecha de modificación de un fichero con Java

Creado: 19/Ene/2012 Actualizado: 29/Dic/2014

Trabajando con ficheros en Java nos puede ser de utilidad obtener fecha de modificación de un fichero. Los pasos para conseguirlo son sencillos.

En primer lugar deberemos de acceder al fichero mediante la clase File.

File fichero = new File("test.txt");

Ahora que ya tenemos instanciada la clase File utilizaremos el método .lastModified(), el cual nos devolverá la fecha de la modificación pero en formato de milisegundos.

long ms = fichero.lastModified();

Así, las siguientes líneas tendrán que servirnos para convertir los milisegundos en una fecha. Esto, en Java, lo podemos conseguir mediante una clase Calendar, la cual instanciaremos mediante un Date y el resultado devuelto por .lastModified().

Date d = new Date(ms);
Calendar c = new GregorianCalendar(); 
c.setTime(d);

Por último nos apoyaremos en las constantes Calendar.DATE, Calendar.MONTH, Calendar.MINUTE,… para sacar los valores que nos ayuden a obtener la fecha de modificación de un fichero con Java.

dia = Integer.toString(c.get(Calendar.DATE));
mes = Integer.toString(c.get(Calendar.MONTH));
annio = Integer.toString(c.get(Calendar.YEAR));
hora = Integer.toString(c.get(Calendar.HOUR_OF_DAY));
minuto = Integer.toString(c.get(Calendar.MINUTE));
segundo = Integer.toString(c.get(Calendar.SECOND));

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Artículos
Javascript

Inicializar un array en Javascript

Creado: 18/Ene/2012 Actualizado: 21/Ago/2017

Una cosa básica que tenemos que aprender a empezar con Javascript es el manejo de arrays y por consiguiente saber como inicializar un array en Javascript.

Lo primero será instanciar el array…

var miarray = new Array(4);

Una vez instanciado el array vemos que tenemos varias formas de inicializar un array en Javascript. La primera es indicando los valores del array en la propia instanciación.

var ciudades = new Array("Avila","Salamanca","Zamora","León");

La segunda es asignando los valores a cada una de las posiciones del array.

var ciudades = new Array(4);
ciudades[0] = "Avila";
ciudades[1] = "Salamanca";
ciudades[2] = "Zamora";
ciudades[3] = "León";

En nuestro caso hemos declarado un array de 4 posiciones y a la hora de asignar los valores tenemos que recordar que en Javascript el primero de los elementos es el 0 y el último será el tamaño del array menos 1.

Si pensamos en la optimización de los arrays se puede evitar el uso de la sentencia new. Ya que el Array es un elemento primitivo del lenguaje. En este sentido, la forma más óptima sería la siguiente:

var ciudades = ["Avila","Salamanca","Zamora","León"];

Así crearemos el array en base a un conjunto de cadenas.

Por último recordemos que los arrays de Javascript no están tipados. Es por ello que podemos inicializar un array en Javascript con diferentes tipos de datos: cadenas, enteros, booleanos,… En este caso podríamos tener la siguiente inicialización de un array:

var miarray = new Array("Victor",34,true);

Código Fuente

Descárgate el código fuente de Inicializar un array en Javascript
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Vídeos sobre Javascript

Disfruta también de nuestros artículos sobre Javascript en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Javascript

¿Te atreves a probar tus habilidades y conocimiento en Javascript con nuestro test?

Test Javascript
Artículos
HTML5

Iniciar automáticamente un vídeo en HTML5

Creado: 16/Ene/2012 Actualizado: 09/Ene/2025

Ya hemos aprendido a cómo cargar un vídeo en HTML5 dentro de nuestra página y a cómo cargar el vídeo en HTML5 desde diferentes formatos. En el código de hoy veremos cómo iniciar automáticamente un vídeo en HTML5.

Y es que el hecho de insertar las etiquetas VIDEO dentro de nuestra página web no implica que el vídeo aranque automáticamente. Si no que deberemos de utilizar los controles (los cuales cargamos mediante el atributo HTML5 controls) para iniciarlo.

Pues bien, para iniciar automáticamente un vídeo en HTML5 tenemos dos formas. La primera consiste en utilizar el atributo autoplay del elemento VIDEO. Simplemente añadiendo este parámetro en nuestro código HTML5 conseguiremos que se inicie automáticamente. El código será el siguiente:

<video autoplay="autoplay" controls="controls" width="300" height="150">
  <source src="videos/tecla.ogv" type="video/ogg">
  Tu navegador no soporta el elemento <code>video</code>
</video>

La segunda opción será utilizar el interface Javascript que nos ofrecen los elementos multimedia en HTML5. Este interface es conocido como HTMLMediaElement. En concreto utilizaremos un método que se llama .play() y que comos u nombre bien nos indicar inicializa la ejecución del vídeo.

Así lo primero que haremos será obtener la referencia al elemento vídeo de nuestra página (que ya no tiene el autoplay).

var v = document.getElementsByTagName("video")[0];

Esto lo podemos hacer vía id con .getElementById() o por etiqueta con .getElementsByTagName(). En ambos casos tendremos la refenrencia sobre el vídeo. Ya solo nos quedará el ejecutar el método .play().

v.play();

Si queremos que este código simule que se inicie automáticamente el vídeo, deberemos de ponerlo en el onLoad de la página o al final estructura de la misma.

Así, podemos tener en nuestra página dos vídeos HTML5 iniciados automáticamente, uno vía el elemento HTML5 y otro con el interface HTMLMediaElement y Javascript.

<video controls="controls" width="300" height="150">
  <source src="https://lineadecodigo.com/wp-content/uploads/2012/01/tecla.ogv" type="video/ogg">
  Tu navegador no soporta el elemento <code>video</code>
</video> <video autoplay="autoplay" controls="controls" width="300" height="150">
  <source src="https://lineadecodigo.com/wp-content/uploads/2012/01/tecla.ogv" type="video/ogg">
  Tu navegador no soporta el elemento <code>video</code>
</video> <script type="text/javascript">
 var v = document.getElementsByTagName("video")[0];
 v.play();
</script>

Vídeos sobre HTML5

Disfruta también de nuestros artículos sobre HTML5 en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test HTML5

¿Te atreves a probar tus habilidades y conocimiento en HTML5 con nuestro test?

Test HTML5