Usar getters para modificar fechas (días, meses, etc...)
Nota: Partiendo del ejemplo de MDN
- sin getters
var theBigDay = new Date(1962, 6, 7);
theBigDay.toLocaleString(); // 6/7/1962 23:00:00
var theBigDay = new Date(1962, 6, 7);
theBigDay.setDate(24);
theBigDay.toLocaleString() // 23/7/1962 23:00:00
var theBigDay = new Date(1962, 6, 7);
theBigDay.setDate(32);
theBigDay.toLocaleString() // 31/7/1962 23:00:00
var theBigDay = new Date(1962, 6, 7);
theBigDay.setDate(22);
theBigDay.toLocaleString() // 21/7/1962 23:00:00
var theBigDay = new Date(1962, 6, 7);
theBigDay.setDate(22 + 32 +24);
theBigDay.toLocaleString() // 15/9/1962 23:00:00
- con getters
var theBigDay = new Date(1962, 6, 7);
theBigDay.toLocaleString(); // 6/7/1962 23:00:00
var theBigDay = new Date(1962, 6, 7);
theBigDay.setDate(theBigDay.getDate() + 24);
theBigDay.toLocaleString(); // 30/7/1962 23:00:00
var theBigDay = new Date(1962, 6, 7);
theBigDay.setDate(theBigDay.getDate() + 32);
theBigDay.toLocaleString(); // 7/8/1962 23:00:00
var theBigDay = new Date(1962, 6, 7);
theBigDay.setDate(theBigDay.getDate() + 22);
theBigDay.toLocaleString(); // 28/7/1962 23:00:00
var theBigDay = new Date(1962, 6, 7);
theBigDay.setDate(theBigDay.getDate() + 22 + 32 + 24);
theBigDay.toLocaleString(); // 22/9/1962 23:00:00
1 - ¿Que fecha será dentro de 30 días?
var ahora = new Date();
console.log("Hoy es " + ahora.toLocaleString());
ahora.setDate(ahora.getDate() + 30);
console.log("En 30 días será " + ahora.toLocaleString());
2 - ¿Cuantas horas han pasado desde que emepezó este curso? y... ¿en días?
var inicio = new Date(2017, 10, 25, 19, 0, 0);
console.log("Fecha de inicio: " + inicio.toLocaleString());
var ahora = new Date();
console.log("Fecha actual: " + ahora.toLocaleString());
var diferencia = ahora - inicio;
var segundos = Math.floor( diferencia / 1000);
var horas = Math.floor( diferencia / ( 60 * 60 * 1000 ) );
var minutos = Math.floor( diferencia / ( 60 * 1000 ) );
var dias = Math.floor( diferencia / ( 24 * 60 * 60 * 1000 ) );
console.log("Han pasado " + diferencia +"ms");
console.log("Han pasado "+ segundos +" segundos.");
console.log("Han pasado "+ minutos +" minutos.");
console.info("Han pasado "+ horas +" horas.");
console.info("Han pasado "+ dias +" días.");
3 - ¿Cuantos milisengundos quedan para terminar el curso? y... ¿en horas o días?
var fin = new Date(2018, 7, 1, 22, 0, 0);
console.log("Fecha de finalización: " + fin.toLocaleString());
var ahora = new Date();
console.log("Fecha actual: " + ahora.toLocaleString());
var diferencia = fin - ahora;
var segundos = Math.floor( diferencia / 1000);
var horas = Math.floor( diferencia / ( 60 * 60 * 1000 ) );
var minutos = Math.floor( diferencia / ( 60 * 1000 ) );
var dias = Math.floor( diferencia / ( 24 * 60 * 60 * 1000 ) );
console.log("Quedan " + diferencia +"ms");
console.log("Quedan "+ segundos +" segundos.");
console.log("Quedan "+ minutos +" minutos.");
console.info("Quedan "+ horas +" horas.");
console.info("Quedan "+ dias +" días.");
4 - ¿Que fecha será dentro de un año y 10 horas más?
var ahora = new Date();
console.log("Hoy es " + ahora.toLocaleString());
ahora.setHours(ahora.getHours() + 10);
ahora.setFullYear(ahora.getFullYear() + 1);
console.log("En un año y 10 horas será " + ahora.toLocaleString());
5 - Imprimir por consola la fecha completa (formato texto) en koreano, japones.
var ahora = new Date();
var opciones = {
weekday: 'long',
year: 'numeric',
month: 'long',
day: 'numeric'
};
console.log(ahora.toLocaleString("ko-KO", opciones));
console.log(ahora.toLocaleString("ja-JA", {
weekday: 'long',
year: 'numeric',
month: 'long',
day: 'numeric'
}));
Propiedades:
- .length() Devuelve la longitud:
var cadena = "Fictizia";
console.log("Fictizia tiene " + cadena.length + " caracteres.");
console.log("Una cadena vacia tiene " + ''.length + " caracteres.");
Métodos:
- .fromCharCode() Devuelve una cadena creada mediante una secuencia Unicode:
console.info("Es es el año 2016 ("+ String.fromCharCode(8559,8559,8553,8548,8544) + ")");
- .anchor() Crea un ancla HTML:
document.body.innerHTML = "Contenidos".anchor("contenidos");
// "<a name="contenidos">Contenidos</a>"
- .charAt() Devuelve el carácter específico:
var cadena="Fictizia";
console.log("El carácter(posición) 3 es '" + cadena.charAt(3) + "'")
- .charCodeAt() Devuelve el valor Unicode:
var cadena="Fictizia";
console.log("El carácter(posición) 3 es '" + cadena.charAt(3) + "', en unicode ("+cadena.charCodeAt(3)+")")
- .concat() Combina el texto de dos o más cadenas:
var cadena1 = "Oh ";
var cadena2 = "qué maravillosa ";
var cadena3 = "mañana'.";
var combinacion = cadena1.concat(cadena2,cadena3);
console.log(combinacion); // devuelve "Oh qué maravillosa mañana'."
- .indexOf() Devuelve el índice o -1:
"Mundo Web".indexOf("Web") // 6
"Mundo Web".indexOf("web") // -1
- .lastIndexOf() Devuelve el índice de la última coincidencia o -1:
"Fictizia".lastIndexOf("i"); // 6
"Fictizia".lastIndexOf("f"); // -1
- .link() Crea un enlace:
var textoActivo="Nuestro Curso"
var url="http://www.fictizia.com/formacion/curso_javascript"
document.body.innerHTML = "Haga click para volver a " + textoActivo.link(url);
- .slice() Devuelve una cadena nueva con una sección de otra:
var cadena = "Fictizia";
console.log(cadena.slice(5)); // zia
console.log(cadena.slice(0, 5)); // Ficti
console.log(cadena.slice(3, -1)); // tizi
- .split() Divide una cadena usando un separador:
function dividirCadena(cadenaADividir,separador) {
var arregloDeCadenas = cadenaADividir.split(separador);
console.log('<p>La cadena original es: "' + cadenaADividir + '"');
console.warn('<br>El separador es: "' + separador + '"');
console.log("<br>El arreglo tiene " + arregloDeCadenas.length + " elementos: ");
var elementos = "";
for (var i=0; i < arregloDeCadenas.length; i++) {
elementos += arregloDeCadenas[i] + " / ";
}
console.info(elementos);
}
var cadenaVerso = "Lorem Ipsum es simplemente el texto de relleno de las imprentas y archivos de texto. Lorem Ipsum ha sido el texto de relleno estándar de las industrias desde el año 1500";
var cadenaMeses = "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec";
var espacio = " ";
var coma = ",";
dividirCadena(cadenaVerso, espacio);
dividirCadena(cadenaVerso);
dividirCadena(cadenaMeses, coma);
- .substr() Devuelve los caracteres de una cadena comenzando en la localización especificada, y en el número de caracteres especificado.:
var cadena = "Fictizia";
console.log("(0,5): " + cadena.substr(0,5)); // Ficti
console.log("(5,3): " + cadena.substr(5,3)); // zia
- .substring() Devuelve un subconjunto:
var cadena = "Fictizia";
console.log("(0,5): " + cadena.substring(0,5)); // Ficti
- .toLocaleLowerCase() Devuelve todo en minúsculas con las características locales:
console.log('FICTIZIA'.toLocaleLowerCase()); // 'fictizia'
- .toLocaleUpperCase(Devuelve todo en mayúsculascon las características locales) **:
console.log('fictizia'.toLocaleUpperCase()); // 'FICTIZIA'
- .toLowerCase() Devuelve todo en minúsculas:
console.log('FICTIZIA'.toLowerCase()); // 'fictizia'
- .toUpperCase() Devuelve todo en mayúsculas:
console.log('fictizia'.toUpperCase()); // 'FICTIZIA'
- .trim() Elimina espacios vacios al principio y final de la cadena:
console.log(' Fictizia '.trim()); // 'Fictizia'