Wie erhalte ich die Tageszeit in Javascript / Node.js?


101

Ich möchte 1 bis 24 bekommen , 1 ist 1 Uhr morgens pazifische Zeit.

Wie kann ich diese Nummer in Node.JS erhalten?

Ich möchte wissen, wie spät es gerade im Pazifik ist.

Antworten:


143

Sie sollten das Date-Objekt auschecken .

Insbesondere können Sie sich die Methode getHours () für das Date-Objekt ansehen .

getHours () gibt die Zeit von 0 bis 23 zurück. Gehen Sie also entsprechend damit um. Ich denke, 0-23 ist etwas intuitiver, da die Militärzeit von 0 bis 23 läuft, aber es liegt an Ihnen.

In diesem Sinne wäre der Code etwas in der Art von:

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

Wenn Sie mit Minuten runden möchten (wie in 1:45 -> 2:00), können Sie die Methode getMinutes () für das Date-Objekt verwenden.
jtsao22

2
Link zu MDN: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… . Verlinken Sie nicht mit dem gefälschten Müll "W3C Schools"
Max

150

Diese Funktion gibt Datum und Uhrzeit im folgenden Format zurück : YYYY:MM:DD:HH:MM:SS. Es funktioniert auch 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 Schön! Wenn bei der Formatierung des Datums Flexibilität erforderlich ist, funktioniert meine möglicherweise besser. :-)
Ionică Bizău

@ user3125367 Ihr Vorschlag ist zwar prägnant, aber nicht derselbe. Ich habe es gerade getestet und getDateTime () zurückgegeben: 2020:06:10:10:12:35während Ihre zurückgegeben hat: 2020:06:10:00:12:35 Es scheint, dass Zeitzonenanpassungen nicht berücksichtigt wurden.
John Forbes

17

Überprüfen Sie die moment.jsBibliothek. Es funktioniert sowohl mit Browsern als auch mit Node.JS. Ermöglicht das Schreiben

moment().hour();

oder

moment().hours();

ohne vorheriges Schreiben von Funktionen.


13

Beide vorherigen Antworten sind definitiv gute Lösungen. Wenn Sie für eine Bibliothek zugänglich sind, mag ich moment.js - es ist viel mehr als nur das Abrufen / Formatieren des Datums.


8

Es gibt eine native Methode, um mit Datum zu arbeiten

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

6
Dies scheint eine geringfügige Verbesserung zu sein, die die Lesbarkeit beeinträchtigt.
Benjamin Lowry

3

Wenn Sie nur die Zeitzeichenfolge möchten, können Sie diesen Ausdruck verwenden (mit einem einfachen 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 )

Es wird das Datum im Monat, Tag und dann im Jahr angezeigt


0

In meinem Fall habe ich es als globales System verwendet und es dann aufgerufen, um zu überprüfen, wann die Betriebsstunden sind.

Unten ist aus meinem index.js

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

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

So rufen Sie den globalen Wert aus einer anderen Datei auf

    /*
     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

Verwenden Sie den folgenden Befehl in Ubuntu, um Ihren Knoten in der PST-Zeitzone zu starten.

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

Anschließend können Sie auf die Datumsbibliothek verweisen , um die benutzerdefinierten Berechnungsdaten für Datum und Uhrzeit im Knoten abzurufen.

Um es clientseitig zu verwenden, verweisen Sie auf diesen Link , laden Sie index.js und assertHelper.js herunter und fügen Sie diese in Ihren HTML-Code ein.

<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
}

Sie können verschiedene Funktionen verwenden, wie in den Beispielen angegeben, um benutzerdefinierte Daten abzurufen.

Wenn der erste Wochentag Sonntag ist, welcher Tag ist der 15. Juni 2015?

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

Wenn der erste Wochentag Dienstag ist, folgt die Wochennummer im Jahr am 15. Juni 2015 als Datum.

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

Verweisen Sie auf andere Funktionen, um Ihre benutzerdefinierten Datumsanforderungen zu erfüllen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.