Projektschulungsaufzeichnung (4) – Vergleich des Front-End-Datumstyps und des Datenbank-Zeitstempeltyps

Inhaltsverzeichnis

1. Was hast du in letzter Zeit gemacht?

2. Aufgetretene Probleme und Lösungen

1. Axios erhält den Ablaufzeittyp in der Datenbank

2. Der vom Frontend erhaltene aktuelle Zeittyp vom Typ Date()

3. Die Front- und Backend-Zeittypen werden einheitlich in das Format jjjj-MM-tt HH:mm:ss konvertiert

4. Zeitvergleich im Format jjjj-MM-tt HH:mm:ss

1. Was hast du in letzter Zeit gemacht?

      Notieren Sie hauptsächlich, was von Ende April bis Anfang Mai getan wurde, und einige aufgetretene Probleme.
      Während dieser Zeit ist es hauptsächlich das Front-End-Schreiben und Back-End-Logik-Schreiben des Clients. Ich bin hauptsächlich für die Anzeige von Bewerbungsinformationen auf der Client-Seite und die Anzeige von Bewerbungsdetails zuständig.

      Das Front-End vergleicht die Anwendungsablaufzeit vom Zeitstempeltyp, die aus der Datenbank extrahiert wurde, mit der aktuellen Zeit vom Datumstyp, die vom Front-End erhalten wird, und fährt dann mit der nächsten logischen Beurteilung und Operation fort.

       Lassen Sie uns also über die Methode des Zeitvergleichs sprechen.

2. Aufgetretene Probleme und Lösungen

1. Axios erhält den Ablaufzeittyp in der Datenbank

Das Format des erhaltenen Zeitstempeltyps:

即:yyyy-MM-dd'T'HH:mm:ss.SSSXXX

2. Der vom Frontend erhaltene aktuelle Zeittyp vom Typ Date()

3. Die Front- und Backend-Zeittypen werden einheitlich in das Format jjjj-MM-tt HH:mm:ss konvertiert

Um den Vergleich auf Millisekundenebene zu erleichtern, werden beide in das Format jjjj-MM-tt HH:mm:ss konvertiert

Die Backend-Konvertierungsmethode, d. h. der Methodencode von yyyy-MM-dd'T'HH:mm:ss.SSSXXX zu yyyy-MM-dd HH:mm:ss, lautet wie folgt:

renderTime(date){
      var dateee = new Date(date).toJSON();
      return new Date(+new Date(dateee) + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '')
    },

Die Front-End-Konvertierungsmethode, nämlich Date() zu yyyy-MM-dd HH:mm:ss Methodencode, lautet wie folgt:

dateFormat(date){
      console.log("当前时间转换前:"+ date);
    
      let y = date.getFullYear()
      let m = date.getMonth() + 1
      m = m < 10 ? ('0' + m) : m
      let d = date.getDate()
      d = d < 10 ? ('0' + d) : d
      let h =date.getHours()
      h = h < 10 ? ('0' + h) : h
      let M =date.getMinutes()
      M = M < 10 ? ('0' + M) : M
      let s =date.getSeconds()
      s = s < 10 ? ('0' + s) : s
      let dateTime= y + '-' + m + '-' + d + ' ' + h + ':' + M + ':' + s;
      console.log("当前时间转换后:"+ dateTime);
      return dateTime;

    },

4. Zeitvergleich im Format jjjj-MM-tt HH:mm:ss

Hier wird die Methode Date.parse() verwendet.

Die Date.parse()-Methode parst einen String, der ein Datum enthält, und gibt die Anzahl der Millisekunden zwischen diesem Datum und dem 1. Januar 1970 um Mitternacht zurück.

Strings werden von den Regeln benötigt. Wie folgt (unter Bezugnahme auf einige Informationen und den Blog des großen Kerls):

  • Kurze Datumsangaben können das Trennzeichen /date verwenden, müssen jedoch dem Format Monat/Tag/Jahr entsprechen, z. B. 20.07.96 oder 15.06.2008.
  • Das Jahr, der Monat und der Tag in einem langen Datum, ausgedrückt in Form des 10. Juli 1995, können in beliebiger Reihenfolge angeordnet werden, und das Jahr kann in 2-stelliger oder 4-stelliger Form ausgedrückt werden. Wenn ein zweistelliges Jahr verwendet wird, muss das Jahr größer oder gleich 70 sein.
  • Jeder Text in Klammern wird als Kommentar betrachtet. Diese Klammern können verschachtelt werden.
  • Kommas und Leerzeichen gelten als Trennzeichen. Mehrere Trennzeichen sind erlaubt.
  • Monats- und Tagesnamen müssen aus zwei oder mehr Zeichen bestehen. Wenn der aus zwei Zeichen bestehende Name nicht eindeutig ist, wird er zum letzten übereinstimmenden Datum aufgelöst. Zum Beispiel löst Ju auf Juli auf, nicht auf Juni. Chrome unterstützt "Ju" nicht.
  • Wenn ein Datum angegeben wird, das eine Wochenzahl angibt, die nicht mit der aus anderen Teilen des Datums ermittelten Wochenzahl übereinstimmt, wird der Wochentag im Datum ignoriert. Beispielsweise wird Dienstag, der 9. November 1996 akzeptiert und analysiert, obwohl der 9. November 1996 eigentlich ein Freitag ist. Aber das resultierende  Date-  Objekt enthält Freitag, den 9. November 1996.
  • JavaScript verarbeitet alle Standardzeitzonen sowie die koordinierte Weltzeit (UTC) und die Greenwich Mean Time (GMT), zum Beispiel: Do, 07. August 2014 11:00:14 GMT. IE6 ~ IE8 haben sehr wenig Unterstützung für das UTC-Format und die Unterstützung von IE9 ist nicht umfassend.
  • Stunden, Minuten und Sekunden werden durch Doppelpunkte getrennt, aber nicht alle müssen angegeben werden. 10:, 10:11 und 10:11:12 sind alle gültig.
  • Es ist ein Fehler, eine Zeit nach 12:00 Uhr als PM anzugeben, wenn eine 24-Stunden-Uhr verwendet wird. Beispielsweise ist 23:15 Uhr falsch.
  • Es ist ein Fehler für Zeichenfolgen, die ungültige Datumsangaben enthalten. Beispielsweise ist eine Zeichenfolge, die zwei Jahre oder zwei Monate enthält, ein Fehler.

Gemäß den Regeln lautet der Formatcode zum Konvertieren von JJJJ-MM-TT HH:mm:ss in MM-TT-JJJJ HH:mm:ss wie folgt:

compareDate(date1,date2){
        var startDate = date1.substring(0,10).split('-');//当前时间
				var endDate = date2.substring(0,10).split('-');//失效时间
				var startNum = startDate[1]+'-'+startDate[2]+'-'+startDate[0]+' '+date1.substring(10,19);  
				var endNum = endDate[1]+'-'+endDate[2]+'-'+endDate[0]+' '+date2.substring(10,19);
        
				var disparityTime =(Date.parse(endNum)-Date.parse(startNum))/3600/1000; //失效时间-当前时间
 				if(Number(disparityTime)<0){
				console.log("失效时间小于当前时间");
        return true;//已失效
 				}else{
           console.log("失效时间大于当前时间");
           return false;//未失效
         }

    },

Supongo que te gusta

Origin blog.csdn.net/pinkray_c/article/details/125108438
Recomendado
Clasificación