3002 Stimmen

Wie kann ich das aktuelle Datum in JavaScript abfragen?

Wie kann ich das aktuelle Datum in JavaScript abfragen?

474 Stimmen

var currentTime = new Date();

18 Stimmen

Siehe die Dokumentation für das Date-Objekt . Sie enthält Beispiele.

5 Stimmen

Dies würde Ihnen helfen tizag.com/javascriptT/javascriptdate.php

4voto

Consta Gorgan Punkte 531

TL;DR

Die meisten der hier gefundenen Antworten sind richtig nur wenn Sie die aktuelle Zeit auf Ihrem lokalen Rechner (Client) benötigen, eine Quelle, die oft nicht als zuverlässig angesehen werden kann (sie wird wahrscheinlich von einem anderen System abweichen).

Zuverlässige Quellen sind:

  • Uhr des Webservers (aber stellen Sie sicher, dass sie auf dem neuesten Stand ist)
  • Zeit-APIs & CDNs

Einzelheiten

Eine Methode, die auf der Date Instanz einen Wert zurück, der auf der lokalen Zeit Ihres Rechners basiert.

Weitere Einzelheiten finden Sie in den "MDN web docs": JavaScript-Datum-Objekt .

Zu Ihrer Erleichterung habe ich einen entsprechenden Hinweis aus den Dokumenten des Unternehmens hinzugefügt:

(...) die grundlegenden Methoden zum Abrufen von Datum und Uhrzeit oder deren Komponenten arbeiten alle in der lokalen (d.h. Host-System) Zeitzone und im Offset.

Eine weitere Quelle, die dies erwähnt, ist: JavaScript-Objekt für Datum und Uhrzeit

Es ist wichtig zu beachten, dass das Datumsobjekt eine andere Zeit als auf Ihrem eigenen Computer erzeugt, wenn die Uhr einer anderen Person um ein paar Stunden abweicht oder sie sich in einer anderen Zeitzone befindet.

Einige zuverlässige Quellen, die Sie nutzen können, sind:

Aber wenn die Genauigkeit für Ihren Anwendungsfall nicht wichtig ist, oder wenn Sie einfach das Datum relativ zur Zeit des lokalen Rechners benötigen, können Sie sicher Javascript's Date grundlegende Methoden wie Date.now() .

3voto

Brock Davis Punkte 161

Ich glaube, die Frage ist alt, aber der einfachste Weg wäre der folgende:

var date = new Date();
var TimeStamp = date.toLocaleString();

function CurrentTime(){
  alert(TimeStamp);
}

Damit wird die aktuelle Zeit erfasst, an einen String übergeben, der auf dem Standort basiert, und dann können Sie die Funktion CurrentTime aufrufen, um die Zeit anzuzeigen. Dies wäre für mich der effektivste Weg, um einen Zeitstempel für etwas zu erhalten.

3voto

Fannon Punkte 273

Dies ist mein derzeitiger Favorit, weil er sowohl flexibel als auch modular ist. Es ist eine Sammlung von (mindestens) drei einfachen Funktionen:

/**
 * Returns an array with date / time information
 * Starts with year at index 0 up to index 6 for milliseconds
 * 
 * @param {Date} date   date object. If falsy, will take current time.
 * @returns {[]}
 */
getDateArray = function(date) {
    date = date || new Date();
    return [
        date.getFullYear(),
        exports.pad(date.getMonth()+1, 2),
        exports.pad(date.getDate(), 2),
        exports.pad(date.getHours(), 2),
        exports.pad(date.getMinutes(), 2),
        exports.pad(date.getSeconds(), 2),
        exports.pad(date.getMilliseconds(), 2)
    ];
};

Hier ist die Funktion des Pads:

 /**
 * Pad a number with n digits
 *
 * @param {number} number   number to pad
 * @param {number} digits   number of total digits
 * @returns {string}
 */
exports.pad = function pad(number, digits) {
    return new Array(Math.max(digits - String(number).length + 1, 0)).join(0) + number;
};

Schließlich kann ich meine Datumszeichenfolge entweder von Hand erstellen oder eine einfache Funktion verwenden, um dies für mich zu tun:

/**
 * Returns nicely formatted date-time
 * @example 2015-02-10 16:01:12
 *
 * @param {object} date
 * @returns {string}
 */
exports.niceDate = function(date) {
    var d = exports.getDateArray(date);
    return d[0] + '-' + d[1] + '-' + d[2] + ' ' + d[3] + ':' + d[4] + ':' + d[5];
};

/**
 * Returns a formatted date-time, optimized for machines
 * @example 2015-02-10_16-00-08
 *
 * @param {object} date
 * @returns {string}
 */
exports.roboDate = function(date) {
    var d = exports.getDateArray(date);
    return d[0] + '-' + d[1] + '-' + d[2] + '_' + d[3] + '-' + d[4] + '-' + d[5];
};

2voto

John Slegers Punkte 41127

Die Grundlagen

Wenn Sie mit dem Format zufrieden sind Sun Jan 24 2016 21:23:07 GMT+0100 (CET) können Sie einfach diesen Code verwenden:

var today = new Date();

Date.prototype.toLocaleDateString()

Wenn Sie Ihre Ausgabe formatieren möchten, sollten Sie Folgendes verwenden Date.prototype.toLocaleDateString() :

var today = new Date().toLocaleDateString('de-DE', {     
    weekday: 'long', 
    year: 'numeric',
    month: 'long',
    day: 'numeric'
});

Wenn Sie diesen Code heute (24. Januar 2016) in einem modernen Browser ausführen würden, würde er die Zeichenfolge Sonntag, 24. Januar 2016 . Ältere Browser können jedoch ein anderes Ergebnis liefern, da z. B. IE<11 keine Gebietsschemata oder Optionsargumente unterstützt.

Benutzerdefiniert gehen

Si Date.prototype.toLocaleDateString() nicht flexibel genug ist, um Ihren Anforderungen gerecht zu werden, sollten Sie in Erwägung ziehen, ein benutzerdefiniertes Datumsobjekt zu erstellen, das wie folgt aussieht:

var DateObject = (function() {
    var monthNames = [
      "January", "February", "March",
      "April", "May", "June", "July",
      "August", "September", "October",
      "November", "December"
    ];
    var date = function(str) {
        this.set(str);
    };
    date.prototype = {
        set : function(str) {
            var dateDef = str ? new Date(str) : new Date();
            this.day = dateDef.getDate();
            this.dayPadded = (this.day < 10) ? ("0" + this.day) : "" + this.day;
            this.month = dateDef.getMonth() + 1;
            this.monthPadded = (this.month < 10) ? ("0" + this.month) : "" + this.month;
            this.monthName = monthNames[this.month - 1];
            this.year = dateDef.getFullYear();
        }
    };
    return date;
})();

Wenn Sie diesen Code einschließen und Folgendes ausführen new DateObject() Heute (24. Januar 2016) würde es ein Objekt mit den folgenden Eigenschaften erzeugen:

day: 24
dayPadded: "24"
month: 1
monthPadded: "01"
monthName: "January"
year: 2016

2voto

jyotibisht Punkte 80

Wenn Sie eine viel genauere Kontrolle über die Datumsformate wünschen, empfehle ich Ihnen einen Blick auf Datum-FNS .

Sie ist eine großartige Bibliothek und viel kleiner als die Moment.js . Es ist ein funktionsbasierter Ansatz, der es viel schneller macht als andere klassenbasierte Bibliotheken. Sie bietet eine große Anzahl von Operationen, die für Daten benötigt werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X