Como obtenho a hora do dia em javascript / Node.js?

101

Eu quero chegar de 1 a 24 , sendo 1 da manhã, horário do Pacífico.

Como posso obter esse número no Node.JS?

Eu quero saber que horas são no horário do Pacífico agora.

TIMEX
fonte

Respostas:

143

Você deve fazer check-out do objeto Date .

Em particular, você pode examinar o método getHours () para o objeto Date.

getHours () retorna o tempo de 0 a 23, portanto, certifique-se de lidar com isso de acordo. Acho que 0-23 é um pouco mais intuitivo, já que o tempo militar vai de 0-23, mas é com você.

Com isso em mente, o código seria algo nas linhas de:

var date = new Date();
var current_hour = date.getHours();
jtsao22
fonte
Se você quer arredondar com minutos (como em 1:45 -> 2:00), pode usar o método getMinutes () para o objeto Date.
jtsao22,
2
Link para MDN: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… . Não vincule a esse lixo falso "W3C Schools"
Máx.
150

Esta função irá retornar a data e hora no formato seguinte: YYYY:MM:DD:HH:MM:SS. Ele também funciona em 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
fonte
10
Aww. (new Date()).toJSON().slice(0, 19).replace(/[-T]/g, ':')
user3125367
3
@ user3125367 Legal! Se for necessária flexibilidade na formatação da data, o meu pode funcionar melhor. :-)
Ionică Bizău
@ user3125367 sua sugestão, embora concisa, não é a mesma. Acabei de testá-lo e getDateTime () retornou: 2020:06:10:10:12:35enquanto o seu retornou: 2020:06:10:00:12:35 Parece que não considerou ajustes de fuso horário.
John Forbes
17

Confira a moment.jsbiblioteca. Funciona com navegadores e também com Node.JS. Permite que você escreva

moment().hour();

ou

moment().hours();

sem escrita prévia de quaisquer funções.

user2513149
fonte
13

Ambas as respostas anteriores são definitivamente boas soluções. Se você gosta de uma biblioteca, eu gosto de moment.js - ele faz muito mais do que apenas obter / formatar a data.

ghchinoy
fonte
8

Existe um método nativo para trabalhar com data

const date = new Date();
let hours = date.getHours();
p2lem8dev
fonte
6
Esta parece ser uma melhoria muito pequena que dificulta a legibilidade.
Benjamin Lowry
3

Se você quiser apenas a string de tempo, pode usar esta expressão (com um RegEx simples):

new Date().toISOString().match(/(\d{2}:){2}\d{2}/)[0]
// "23:00:59"
Pablo Andres Diaz Mazzaro
fonte
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 )

Ele exibirá a data no mês, dia e ano

Josh
fonte
0

No meu caso, usei-o como um global e, em seguida, chamei-o para uma verificação de tempo de quando horas de operação.

Abaixo está do meu index.js

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

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

Para chamar o valor do global de outro arquivo

    /*
     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 Ácido
fonte
-1

Para iniciar seu nó no fuso horário PST, use o seguinte comando no Ubuntu.

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

Então você pode consultar a Biblioteca de Datas para obter as funções personalizadas de data e hora de cálculo no nó.

Para usá-lo do lado do cliente, consulte este link , baixe index.js e assertHelper.js e inclua isso em seu 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
}

Você pode usar funções diferentes, conforme fornecido nos exemplos, para obter datas personalizadas.

Se o primeiro dia da semana for domingo, que dia será 15 de junho de 2015.

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

Se o primeiro dia da semana for terça-feira, qual número da semana no ano será seguido em 15 de junho de 2015 como uma das datas.

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

Consulte outras funções para cumprir seus requisitos de data personalizados.

Vikash Rajpurohit
fonte