¿Cómo obtengo la hora del día en javascript / Node.js?

101

Quiero obtener del 1 al 24 , siendo 1 a la 1 a.m., hora del Pacífico.

¿Cómo puedo obtener ese número en Node.JS?

Quiero saber qué hora es en este momento en la hora del Pacífico.

TIMEX
fuente

Respuestas:

143

Debería comprobar el objeto Date .

En particular, puede mirar el método getHours () para el objeto Date.

getHours () devuelve el tiempo de 0 a 23, así que asegúrese de manejarlo en consecuencia. Creo que 0-23 es un poco más intuitivo ya que el tiempo militar va de 0 a 23, pero depende de usted.

Con eso en mente, el código sería algo así como:

var date = new Date();
var current_hour = date.getHours();
jtsao22
fuente
Si te refieres al redondeo con minutos (como en 1:45 -> 2:00), puedes usar el método getMinutes () para el objeto Date.
jtsao22
2
Enlace a MDN: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… . No se vincule a esa basura falsa de "Escuelas del W3C"
Max
151

Esta función le devolverá la fecha y la hora en el formato siguiente: YYYY:MM:DD:HH:MM:SS. También funciona en Node.js.

function getDateTime() {

    var date = new Date();

    var hour = date.getHours();
    hour = (hour < 10 ? "0" : "") + hour;

    var min  = date.getMinutes();
    min = (min < 10 ? "0" : "") + min;

    var sec  = date.getSeconds();
    sec = (sec < 10 ? "0" : "") + sec;

    var year = date.getFullYear();

    var month = date.getMonth() + 1;
    month = (month < 10 ? "0" : "") + month;

    var day  = date.getDate();
    day = (day < 10 ? "0" : "") + day;

    return year + ":" + month + ":" + day + ":" + hour + ":" + min + ":" + sec;

}
Ionică Bizău
fuente
10
Aww. (new Date()).toJSON().slice(0, 19).replace(/[-T]/g, ':')
user3125367
3
@ user3125367 ¡Bonito! Si se necesita flexibilidad para formatear la fecha, la mía puede funcionar mejor. :-)
Ionică Bizău
@ user3125367 su sugerencia, aunque concisa, no es realmente la misma. Acabo de probarlo y getDateTime () devolvió: 2020:06:10:10:12:35mientras que el suyo devolvió: 2020:06:10:00:12:35 Parece que no consideró los ajustes de zona horaria.
John Forbes
17

Echa un vistazo a la moment.jsbiblioteca. Funciona tanto con navegadores como con Node.JS. Te permite escribir

moment().hour();

o

moment().hours();

sin escritura previa de ninguna función.

usuario2513149
fuente
13

Ambas respuestas anteriores son definitivamente buenas soluciones. Si está dispuesto a usar una biblioteca, me gusta moment.js : hace mucho más que obtener / formatear la fecha.

ghchinoy
fuente
8

Hay un método nativo para trabajar con la fecha.

const date = new Date();
let hours = date.getHours();
p2lem8dev
fuente
6
Esto parece una mejora muy pequeña que dificulta la legibilidad.
Benjamin Lowry
3

Si solo desea la cadena de tiempo, puede usar esta expresión (con una expresión regular simple):

new Date().toISOString().match(/(\d{2}:){2}\d{2}/)[0]
// "23:00:59"
Pablo Andrés Díaz Mazzaro
fuente
0
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth() + 1;
month = (month < 10 ? "0" : "") + month;
var hour = date.getHours();
hour = (hour < 10 ? "0" : "") + hour;
var day  = date.getDate();
day = (hour > 12 ? "" : "") + day - 1;
day = (day < 10 ? "0" : "") + day;
x = ":"
console.log( month + x + day + x + year )

Mostrará la fecha en el mes, el día y luego el año

Josh
fuente
0

En mi caso, lo usé como global y luego lo llamé para verificar el horario de funcionamiento.

A continuación es de mi index.js

global.globalDay = new Date().getDay(); 

global.globalHours = new Date().getHours();

Para llamar al valor global de otro archivo

    /*
     Days of the Week.
     Sunday = 0, Monday = 1, Tuesday = 2, Wensday = 3, Thursday = 4, Friday = 5, Saturday = 6

     Hours of the Day.
     0 = Midnight, 1 = 1am, 12 = Noon, 18 = 6pm, 23 = 11pm
     */

if (global.globalDay === 6 || global.globalDay === 0) {
     console.log('Its the weekend.');
} else if (global.globalDay > 0 && global.globalDay < 6 && global.globalHours > 8 && global.globalHours < 18) {
     console.log('During Business Hours!');
} else {
     console.log("Outside of Business hours!");
}
Moto Acidic
fuente
-1

Para iniciar su nodo en la zona horaria PST, use el siguiente comando en ubuntu.

TZ=\"/usr/share/zoneinfo/GMT+0\" && export TZ && npm start &

Luego, puede consultar la Biblioteca de fechas para obtener las funciones de fecha y hora de cálculo personalizadas en el nodo.

Para usarlo en el lado del cliente, consulte este enlace , descargue index.js y assertHelper.js e inclúyalo en su HTML.

<script src="assertHelper.js"></script>
<script type="text/javascript" src="index.js"></script>
$( document ).ready(function() {
    DateLibrary.getDayOfWeek(new Date("2015-06-15"),{operationType:"Day_of_Week"}); // Output : Monday
}

Puede utilizar diferentes funciones como se indica en los ejemplos para obtener fechas personalizadas.

Si el primer día de la semana es el domingo, ¿qué día será el 15 de junio de 2015?

 DateLibrary.getDayOfWeek(new Date("2015-06-15"),
    {operationType:"Day_Number_of_Week",
        startDayOfWeek:"Sunday"}) // Output : 1

Si el primer día de la semana es martes, qué número de semana del año seguirá el 15 de junio de 2015 como una de las fechas.

 DateLibrary.getWeekNumber(new Date("2015-06-15"),
    {operationType:"Week_of_Year",
        startDayOfWeek:"Tuesday"}) // Output : 24

Consulte otras funciones para cumplir con sus requisitos de fecha personalizada.

Vikash Rajpurohit
fuente