Heim  >  Artikel  >  Web-Frontend  >  So bedienen Sie ein Datumsobjekt in JS

So bedienen Sie ein Datumsobjekt in JS

php中世界最好的语言
php中世界最好的语言Original
2017-12-02 10:30:421439Durchsuche

Datum ähnelt Array in js, beide sind spezielle Objekte mit ihren eigenen speziellen Methoden.

Da ich Date nicht oft verwende, ist mein Verständnis davon recht oberflächlich. Letzte Woche wurde ich gefragt, wie ich die Anzahl der Tage in einem bestimmten Monat eines bestimmten Jahres ermitteln kann. Ich habe eine Weile darüber nachgedacht und geantwortet, dass es zwei Arten gibt, die Logik der Schaltjahresbeurteilung selbst zu schreiben Die Anzahl der Tage in jedem Monat wird in zwei Situationen in einem Array gespeichert. Es verwendet die Eigenschaften des js-Datumsobjekts (eigentlich hat er es zusammengefasst ...). Ich kann Ihnen aber nicht genau sagen, welche Funktionen verwendet werden. Jetzt, wo ich darüber nachdenke, lasst es uns lernen und zusammenfassen.

Datumsabruf- und -satzserie

(Hinweis: Die spezifische Referenzzeit von getTime() ist 8:00:00 am 1. Januar 1970)

Alle Sätze Es gibt entsprechende get-Serie.

Es ist zu beachten, dass alle get- und set-Vorgänge eine Instanz initialisieren und als Attribut der Instanz aufrufen müssen. Zum Beispiel:

Es ist eigentlich sehr einfach zu verstehen. Wenn Sie den Wert eines Date-Objekts festlegen oder zurückgeben möchten, muss es sich schließlich lohnen, vorhanden zu sein. Die Standardschreibweise ist var date=new Date(2015,7,30);date.getDate()

Wenn in new Date() keine Parameter übergeben werden und keine Set-Serien-Methode verwendet wird, dann Bezieht sich auf den aktuellen Wert (lokale Rechenuhr), einschließlich Stunden, Minuten und Sekunden. Diese Funktion kann in js problemlos verwendet werden, um die aktuelle Uhrzeit in beliebiger Form anzuzeigen.

var date = new Date(),
    nowYear = date.getFullYear(),
    nowMonth = date.getMonth() + 1,  //注意getMonth从0开始,getDay()也是(此时0代表星期日)
    nowDay = date.getDate(),
    nowHour = date.getHours(),
    nowMinute = date.getMinutes(),
    nowSecond = date.getSeconds(),
    weekday = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
    nowWeek = weekday[date.getDay()];
console.log(nowYear + '年' + nowMonth + '月' + nowDay + '日' + nowHour + '时' + nowMinute + '分' + nowSecond + '秒' + nowWeek);

Ebenso können Sie ganz einfach Uhreffekte erstellen, indem Sie die integrierten Rückrufmethoden setInterval oder setTimeout verwenden.

Zunächst einmal verfügt jedes Objekt über valueOf() (den realen Wert abrufen) und toString() (den Wert in String-Form abrufen). Beachten Sie den Unterschied innerhalb des roten Kästchens.

 toTimeString(): Wandelt den Zeitteil des Date-Objekts in einen String um und gibt ihn zurück, daher muss es einen Zeitparameter und eine Instanz geben,

 toDateString(): Wandelt den Datumsteil um des Date-Objekts in einen String umgewandelt und zurückgegeben wird, muss eine Instanz vorhanden sein.

Parse(): Gibt die Anzahl der Millisekunden von 8:00 Uhr am 1. Januar 1970 bis zum angegebenen Datum (Zeichenfolge) zurück, sekundengenau. Es kann nur in Form von Date.parse (Date-Instanz) aufgerufen werden. (Achten Sie darauf, getTime() auf Millisekunden genau zu vergleichen.)

 toSource(): Rückkehr zum Quellcode.

Hinweis: toLocaleString: Konvertieren Sie das Date-Objekt in einen String entsprechend dem lokalen Zeitformat, entsprechend UTC und GMT. Diese Methode ist sowohl in Array als auch in Date veraltet, also machen Sie sich darüber keine Sorgen mehr. Die UTC-Serie wird selten verwendet, das heißt, das Format ist unterschiedlich

Zusammenfassung wichtiger Wissenspunkte

Parameterdiskussion der Set-Serie

Die ersten drei Parameter von setFullYear () sind nützlich. Stunden, Minuten und Sekunden sind immer noch lokal~~~

Für andere Satzreihen ist nur der erste Parameter nützlich und der Rückgabewert basiert auf new Date() (aktuelle Zeit) plus Monat/Datum/Minuten * entsprechend dem ersten Parameter.

Stellen Sie die vollständige Zeit ein.

Offensichtlich ist setTime auch eine festgelegte Reihe, daher werden der ursprünglichen Zeit nur 1992 Millisekunden hinzugefügt (angezeigt als 1s). Da setTime etwas Besonderes ist, wurde es am 1. Januar 1970 um 8 Uhr morgens getestet (FF, Chrome, IE5+, Opera (Safari wird nicht ausreichend genutzt, daher habe ich es nicht getestet)). Obwohl w3School sagte, dass es 0 Uhr war, Testen Sie das neue Datum ( 1970,0,1,8,0,0).getTime() wird offensichtlich als 0 angezeigt), daher ist die Datumsinstanz vor der tatsächlichen Ausführung nicht mehr die aktuelle Zeit, die new Date() entspricht, sondern Es gibt einen Prozess der Umwandlung in eine Basiszeit. Der angezeigte Wert ist also 1970,0,1,8,0,1. Wenn 1992 in 5000 geändert wird, ist es 1970,0,1,8,0,5.

Was die Methode zum Festlegen der vollständigen Zeit betrifft, übergeben Sie die Parameter der Zeit, die eingestellt werden muss, wenn Sie das neue Date-Objekt verwenden. Es kann 1992, 10, 3, 10, 2, 50 sein (Sie können auch Millisekunden hinzufügen und dann getTime() verwenden, um es zu erkennen, aber es wird im Allgemeinen nicht verwendet) in digitaler Form (entspricht 10:02 Uhr am 3. November). , 1992 50 Sekunden), oder es kann im Standard-String-Format vorliegen (aber im Allgemeinen wird es nicht so geschrieben~~~).

    getDate()

Normalerweise für das Finale hinten platziert, hehe.

Als Get-Serie ist neben der Anzahl der Parameter auch der Wert der Parameter sehr spezifisch. Beantworten Sie zunächst die ursprüngliche Frage und ermitteln Sie die maximale Anzahl von Tagen in einem bestimmten Monat eines bestimmten Jahres (was als Beurteilung eines Schaltjahres verstanden werden kann ~).

new Date(2014,2,0).getDate();     //返回2014年2月份的最后一天(28)

Wenn der dritte Parameter 0 ist, wird tatsächlich der letzte Tag des vorherigen Monats zurückgegeben (beachten Sie, dass die Nummer 2 des Monats tatsächlich März ist, sodass der Code den letzten Tag im Februar zurückgibt. Zahl im aktuellen Monat). Weitere Beispiele ansehen

Code kopieren

new Date(2014,1,30).getDate();     //返回2014年3月2日在3月份中的天数(2)
new Date(2014,2,-1).getDate();     //返回2014年2月份的倒数第二天(27)

//Wenn die Parameter fehlen, 1 anzeigen

new Date(2014,8).getDate(); 
new Date(14,18).getDate(); 
new Date(180).getDate();

//Wenn die Parameter redundant sind, Sie sind redundant. Es funktioniert nicht (keine Operation für Argumente[3+] ist festgelegt)

new Date(2015,2,0,2).getDate();

Code kopieren

Wenn die Anzahl der Tage zu groß ist, wird die Berechnung automatisch durchgeführt Wenn die Anzahl der Tage negativ ist, erhöht sich die monatliche Berechnung. Wenn zu wenige Parameter vorhanden sind, liegt ein Problem vor. Wenn zu viele Parameter vorhanden sind, haben die zusätzlichen Teile keine Auswirkung. Im Vergleich zu anderen Set-Serien ist es fast das gleiche wie die Umsetzungsidee. Sie werden es erkennen, wenn Sie sich (2) ansehen.

Zeitobjekte in der Form new Date('xxxx/xx/xx xx:xx:xx') können sowohl auf IOS- als auch Andriod-Systemen korrekt erkannt werden, und Zeitobjekte in der Form new Date(' xxxx-xx- Zeitobjekte in der Form xx xx:xx:xx') können auf dem iOS-System nicht korrekt erkannt werden und erfordern eine Konvertierungsebene.

function parseDate(dateStr) {
  if (!dateStr) {
    return new Date();
  }
 
  if (dateStr.indexOf('/') > -1) {
    return new Date(dateStr);
  } else {
    return new Date(dateStr.replace(/-/g, '/'));
  }
}

Ich glaube, dass Sie die Methoden beherrschen, nachdem Sie diese Fälle gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Verwandte Lektüre:

So legen Sie die Textschriftfarbe in CSS fest

So legen Sie die Schriftart für Text in CSS fest

in CSS Unterschiede in den Arten von Boxmodellen

Das obige ist der detaillierte Inhalt vonSo bedienen Sie ein Datumsobjekt in JS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn