Come ottengo l'ora del giorno in javascript / Node.js?


101

Voglio arrivare da 1 a 24 , 1 è l'01: 00 Pacific Time.

Come posso ottenere quel numero in Node.JS?

Voglio sapere che ore sono nel Pacifico adesso.

Risposte:


143

Dovresti effettuare il checkout dell'oggetto Date .

In particolare, puoi guardare il metodo getHours () per l'oggetto Date.

getHours () restituisce l'ora da 0 a 23, quindi assicurati di gestirla di conseguenza. Penso che 0-23 sia un po 'più intuitivo poiché il tempo militare va da 0 a 23, ma dipende da te.

Con questo in mente, il codice sarebbe qualcosa sulla falsariga di:

var date = new Date();
var current_hour = date.getHours();

Se intendi arrotondare con i minuti (come in 1:45 -> 2:00), puoi utilizzare il metodo getMinutes () per l'oggetto Date.
jtsao22

2
Collegamento a MDN: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… . Non collegarti a quella falsa spazzatura delle "W3C Schools"
Max

151

Questa funzione restituisce la data e l'ora nel formato seguente: YYYY:MM:DD:HH:MM:SS. Funziona anche in 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;

}

10
Aww. (new Date()).toJSON().slice(0, 19).replace(/[-T]/g, ':')
user3125367

3
@ user3125367 Bella! Se è necessaria flessibilità nella formattazione della data, la mia potrebbe funzionare meglio. :-)
Ionică Bizău

@ user3125367 il tuo suggerimento, sebbene conciso, in realtà non è lo stesso. L'ho appena testato e getDateTime () restituito: 2020:06:10:10:12:35mentre, il tuo è tornato: 2020:06:10:00:12:35 Sembra che non abbia considerato gli aggiustamenti del fuso orario.
John Forbes

17

Dai un'occhiata alla moment.jslibreria. Funziona con i browser così come con Node.JS. Ti permette di scrivere

moment().hour();

o

moment().hours();

senza previa scrittura di alcuna funzione.


13

Entrambe le risposte precedenti sono decisamente buone soluzioni. Se sei adatto a una libreria, mi piace moment.js : fa molto di più che ottenere / formattare la data.


8

C'è un metodo nativo per lavorare con la data

const date = new Date();
let hours = date.getHours();

6
Questo sembra un miglioramento molto minore che ostacola la leggibilità.
Benjamin Lowry

3

Se vuoi solo la stringa dell'ora puoi usare questa espressione (con una semplice RegEx):

new Date().toISOString().match(/(\d{2}:){2}\d{2}/)[0]
// "23:00:59"

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 )

Visualizzerà la data nel mese, il giorno e poi l'anno


0

Per la mia istanza l'ho usato come globale e poi l'ho chiamato per un controllo orario di quando l'orario di apertura.

Di seguito è tratto dal mio index.js

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

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

Per chiamare il valore del globale da un altro file

    /*
     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!");
}

-1

Per avviare il tuo nodo nel fuso orario PST, usa il seguente comando in ubuntu.

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

Quindi è possibile fare riferimento alla libreria delle date per ottenere le funzioni di data e ora di calcolo personalizzate nel nodo.

Per usarlo lato client , fai riferimento a questo link , scarica index.js e assertHelper.js e includilo nel tuo 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
}

È possibile utilizzare diverse funzioni come indicato negli esempi per ottenere date personalizzate.

Se il primo giorno della settimana è la domenica, quale giorno sarà il 15 giugno 2015.

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

Se il primo giorno della settimana è martedì, il numero della settimana nell'anno sarà seguito nel 15 giugno 2015 come una delle date.

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

Fai riferimento ad altre funzioni per soddisfare i tuoi requisiti di data personalizzati.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.