Código de JavaScript - Obtener la diferencia horaria de una zona horaria especificada con relación a UTC en una fecha dada

Imágen de perfil
Val: 2.028
Plata
Ha aumentado 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

Obtener la diferencia horaria de una zona horaria especificada con relación a UTC en una fecha dadagráfica de visualizaciones


JavaScript

Publicado el 26 de Febrero del 2021 por Katas (176 códigos)
352 visualizaciones desde el 26 de Febrero del 2021
Al igual que la función para obtener la diferencia horaria en la fecha actual, esta función devuelve la misma diferencia pero en una fecha dada.
Si la zona horaria no existe o no recibe un año y mes, devuelve false.

1
2
3
4
5
6
getOffsetDateTimezone("Europe/Madrid",    2021, 2, 1, 10); // 3600
getOffsetDateTimezone("Europe/Madrid",    2021, 8, 1, 10); // 7200
getOffsetDateTimezone("America/New_York", 2021, 2, 1, 10); // -18000
getOffsetDateTimezone("America/New_York", 2021, 8, 1, 10); // -14400
getOffsetDateTimezone("noExiste",         2021, 2, 1, 10); // false
getOffsetDateTimezone("America/New_York"); // false

1

Publicado el 26 de Febrero del 2021gráfica de visualizaciones de la versión: 1
353 visualizaciones desde el 26 de Febrero del 2021
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/**
 * Funcion que recibe una zona horaria y una fecha, y devuelve
 * un objeto Date con la fecha recibida en esa zona horaria o false si
 * la zona horaria no existe.
 *
 * @param  {string} timezone
 * @param  {int}    year
 * @param  {int}    month
 * @param  {int}    day (default 0)
 * @param  {int}    hours (default 0)
 * @param  {int}    minutes (default 0)
 * @param  {int}    seconds (default 0)
 * @return {object} Date o false si la zona horaria no existe
 */
 const getDateForTimezone = (timezone, year, month, day=0, hours=0, minutes=0, seconds=0) => {
    if (timezone==undefined || year==undefined || month==undefined) {
        return false;
    }
    const dateNow=new Date(year, month-1, day, hours, minutes, seconds);
    try {
        return new Date(dateNow.toLocaleString('en-US', {timeZone: timezone}));
    } catch (error) {
        return false;
    }
}
 
/**
 * Funcion para devolver la diferencia horaria de una zona horaria
 * o false si la zona horaria no existe.
 *
 * @param  {string} timezone - una zona horaria (America/New_York)
 * @param  {int}    year
 * @param  {int}    month
 * @param  {int}    day (default 0)
 * @param  {int}    hours (default 0)
 * @param  {int}    minutes (default 0)
 * @param  {int}    seconds (default 0)
 * @return {integer|false}   - devuelve los segundos o false
 */
 const getOffsetDateTimezone = (timezone, year, month, day=0, hours=0, minutes=0, seconds=0) => {
    const utcDate = getDateForTimezone("UTC", year, month, day, hours, minutes, seconds);
    const tzDate = getDateForTimezone(timezone, year, month, day, hours, minutes, seconds);
    return utcDate && tzDate ? (tzDate - utcDate)/1000 : false;
}



Comentarios sobre la versión: 1 (0)


No hay comentarios
 

Comentar la versión: 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s6910