Jak sprawdzić godzinę w javascript / Node.js?

101

Chcę uzyskać od 1 do 24 , a 1 to 1 w nocy czasu pacyficznego.

Jak mogę uzyskać ten numer w Node.JS?

Chcę wiedzieć, która jest teraz godzina pacyficzna.

TIMEX
źródło

Odpowiedzi:

143

Powinieneś wyewidencjonować obiekt Date .

W szczególności można przyjrzeć się metodzie getHours () dla obiektu Date.

getHours () zwraca czas od 0 do 23, więc pamiętaj, aby odpowiednio się z nim zająć. Myślę, że 0-23 jest nieco bardziej intuicyjne, ponieważ czas wojskowy trwa od 0 do 23, ale to zależy od Ciebie.

Mając to na uwadze, kod byłby podobny do:

var date = new Date();
var current_hour = date.getHours();
jtsao22
źródło
Jeśli masz na myśli zaokrąglanie do minut (jak w 1:45 -> 2:00), możesz użyć metody getMinutes () dla obiektu Date.
jtsao22
2
Link do MDN: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… . Nie umieszczaj linków do fałszywych śmieci „W3C Schools”
maks.
151

Ta funkcja zwróci Ci datę i czas w formacie następujące elementy: YYYY:MM:DD:HH:MM:SS. Działa również w 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
źródło
10
Aww. (new Date()).toJSON().slice(0, 19).replace(/[-T]/g, ':')
user3125367
3
@ user3125367 Niezłe! Jeśli potrzebna jest elastyczność w formatowaniu daty, moja może działać lepiej. :-)
Ionică Bizău
@ user3125367 Twoja sugestia, choć zwięzła, nie jest w rzeczywistości taka sama. Właśnie to przetestowałem i zwróciło getDateTime (): 2020:06:10:10:12:35podczas gdy twój zwrócił: 2020:06:10:00:12:35 Wygląda na to, że nie uwzględniał dostosowań strefy czasowej.
John Forbes
17

Zajrzyj do moment.jsbiblioteki. Działa z przeglądarkami, a także z Node.JS. Pozwala pisać

moment().hour();

lub

moment().hours();

bez wcześniejszego pisania jakichkolwiek funkcji.

user2513149
źródło
13

Obie wcześniejsze odpowiedzi to zdecydowanie dobre rozwiązania. Jeśli wolisz bibliotekę, lubię moment.js - robi o wiele więcej niż tylko pobieranie / formatowanie daty.

ghchinoy
źródło
8

Istnieje natywna metoda pracy z datą

const date = new Date();
let hours = date.getHours();
p2lem8dev
źródło
6
Wydaje się, że jest to bardzo niewielka poprawa, która utrudnia czytelność.
Benjamin Lowry,
3

Jeśli potrzebujesz tylko ciągu czasu, możesz użyć tego wyrażenia (z prostym wyrażeniem regularnym):

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

Wyświetli datę w postaci miesiąca, dnia, a następnie roku

Josh
źródło
0

Na przykład użyłem go jako globalnego, a następnie zadzwoniłem do niego, aby sprawdzić, kiedy godziny pracy.

Poniżej jest z mojego index.js

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

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

Aby wywołać wartość globalną z innego pliku

    /*
     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
źródło
-1

Aby uruchomić węzeł w strefie czasowej PST, użyj następującego polecenia w systemie ubuntu.

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

Następnie możesz odwołać się do biblioteki dat, aby uzyskać niestandardowe funkcje obliczania daty i czasu w węźle.

Aby go użyć po stronie klienta, odnieś się do tego linku , pobierz plik index.js i assertHelper.js i dołącz go do kodu 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
}

Możesz użyć różnych funkcji podanych w przykładach, aby uzyskać niestandardowe daty.

Jeśli pierwszy dzień tygodnia to niedziela, jaki dzień będzie 15 czerwca 2015 r.

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

Jeśli pierwszy dzień tygodnia przypada we wtorek, jaki numer tygodnia w roku będzie następujący po 15 czerwca 2015 r. Jako jedna z dat.

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

Skorzystaj z innych funkcji, aby spełnić swoje niestandardowe wymagania dotyczące daty.

Vikash Rajpurohit
źródło