Ext.Date ist ein Singleton, das eine Reihe von Date -Betriebsfunktionen zusammenfasst und die Funktionen des JavaScript -Datums erweitert. Im Folgenden sind einige häufig verwendete Funktionen aufgeführt.
Grundfunktionen:
Schauen wir uns einige Beispiele im Detail an:
// ext.date.add (Datum, Intervall, Wert) bis Datum hinzufügen oder verringern. Diese Funktion ändert nicht den Wert des ursprünglichen Datumsobjekts, sondern gibt ein neues Datumsobjekt zurück. // @param {Datum} Datum des Originaldatums. // @param {String} Intervallwerteinheit, Sie können ext.date.day, ext.date.hour, ext.date.minute, ext.date.month, // ext.date.second, ext.date.year, ext.date.milli wählen. // @param {number} Wert Der Wert, der das Datumsobjekt hinzugefügt werden muss. // @return {Datum} Gibt das Datumsobjekt nach dem Mehrwert zurück. // Beispiel var date = ext.date.add (neues Datum ('10/29/2006 '), ext.date.day, 5); // 5 Tage Konsole.log (Datum) hinzufügen; // Rückgabeergebnis Fr. Nov. 03. 2006 00:00:00 GMT+0800 (China Standard -Zeit) var date = ext.date.add (neues Datum ('10/29/2006 '), ext.date.day, -5); // 5 Tage reduzieren, wenn der Wert negativ ist, nimmt er ab. console.log (Datum); // Rückgabeergebnis Di 24. Oktober 2006 00:00:00 GMT+0800 (China Standard -Zeit) var date = ext.date.add (neues Datum ('10/29/2006 '), ext.date.year, 2); // 2 Jahre Konsole.log (Datum) hinzufügen; // Rückgabeergebnis Mi 29. Oktober 2008 00:00:00 GMT+0800 (China Standard -Zeit) // ext.date.between (Datum, Start, Ende) Bestimmen Sie, ob das Datum zwischen Start und Ende liegt. // @param {Datum} Datum das zu beurteilte Datum. // @param {date} start // @param {date} end // @return {boolean} Wenn Datum das true zwischen Start und Ende zurückgibt, geben Sie ansonsten false zurück. // Beispiel var date = neues Datum ('10/29/2012 '); var start = neuer Datum ('10/5/2006 '); var end = neuer Datum ('11/15/2006 '); Ext.date.between (Datum, Start, Ende); // RETURE TRUE // ext.date.cleartime (Datum, Klon) Legen Sie die Zeit des Datums auf 00 Stunden, 00 Minuten, 00 Sekunden, 000 Millisekunden fest. // @param {Date} Date // @param {Bollean} Klone Optionale Parameter. Wenn wahr ist, wird eine Kopie des Datums zurückgegeben, und wenn falsch, wird das Datum selbst zurückgegeben, was zu False ausfällt. // @return {date} Gibt das festgelegte Datum zurück. // Beispiel var date = neues Datum ('10/30/2022 14:30:00 '); Ext.date.ClearTime (Datum); // Return Di 30 Oktober 2012 00:00:00 GMT+0800 (China Standard -Zeit) // ext.date.clone (Datum) Eine Kopie des klonten Datums. // @param {Date} Date // @return {Date} Gibt das klonierte Datum zurück. // Beispiel var orig = neues Datum ('10/30/2012 '); var copy = ext.date.clone (orig); // Klonen Sie einen Wert // ext.date.format (Datum, Format) Format das Datum und senden Sie die formatierte Zeichenfolge zurück. // @param {Datum} Datum. // @param {String} Formatdatumformat, y-Jahr, m-month, d-day, h-24 Stunden, i-minute, s-sekonds // @return {string} Gibt die formatierte Zeichenfolge zurück. // Beispiel var date = neues Datum ('10/20/2022 14:30:00 '); Ext.date.format (Datum, ymd h: i: s '); // 2012-10-20 14:30:00 ext.date.format (Datum, y Jahr m Monat d Datum h: i: s '); // 20. Oktober 2012 14:30:00 // ext.date.getayofyear (Datum) Erhalten Sie das Datum des Jahres // @param {Datum} Datum. // @return {number} Gibt die Anzahl der Tage mit einem Wertebereich von 0 ~ 364 zurück, und wenn es sich um ein Schaltjahr handelt, gibt es 365. // Beispiel var date = neues Datum ('10/20/2012 14:30:00 '); Ext.date.getayofyear (Datum); // Rückgabe 293 // ext.date.getdaysinmonth (Datum) Erhalten Sie das Datum des Tages des Monats // @param {Datum} Datum. // @return {number} Gibt die Anzahl der Tage zurück. // Beispiel var date = neues Datum ('10/20/2022 14:30:00 '); Ext.date.getayofyear (Datum); // Rückgabe 31 // ext.date.getFirstDateOfMonth (Datum) Erhalten Sie den ersten Tag des Monats, an dem sich das Datum befindet // @param {Datum} Datum. // @return {Date} Gibt den ersten Tag des Monats zurück. // Beispiel var date = neues Datum ('10/20/2022 14:30:00 '); Ext.date.getFirstDateOfMonth (Datum); // Return Mon 01. Oktober 2012 00:00:00 GMT+0800 (China Standard Time) // ext.date.getfirstdayofmonth (Datum) Erhalten Sie die Woche des ersten Tages des Monats, an dem sich das Datum befindet // @param {Datum} Datum. // @return {number} kehrt die Woche des ersten Tages des Monats mit einem Wertebereich von 0 ~ 6 zurück. // Beispiel var date = neues Datum ('10/20/2022 14:30:00 '); Ext.date.getFirstdayofmonth (Datum); // Rückgabe 1, wobei Montag // ext.date.getLastDateOfMonth (Datum) den letzten Tag des Monats erhalten, an dem sich das Datum befindet // @param {Datum} Datum. // @return {Datum} Gibt den letzten Tag des Monats zurück, in dem Sie sich befinden. // Beispiel var date = new Datum ('10/20/2022 14:30:00 '); Ext.date.getLastDateOfmonth (Datum); // Rückkehr Mi 31. Oktober 2012 00:00:00 GMT+0800 (China Standard Time) // ext.date.getLastdayofmonth (Datum) Erhalten Sie die Woche des letzten Tages des Monats, an dem sich das Datum befindet // @param {Datum} Datum. // @return {number} kehrt die Woche des letzten Tages des Monats mit einem Wertebereich von 0 ~ 6 zurück. // Beispiel var date = neues Datum ('10/20/2022 14:30:00 '); Ext.date.getLastdayofmonth (Datum); // Rückkehr 3, wobei Mittwoch angezeigt wird // ext.date.getweekofyear (Datum) Erhalten Sie die Woche des Jahres, in dem sich Datum befindet // @param {Datum} Datum. // @return {number} kehrt die Woche des Jahres mit einem Wertebereich von 1 ~ 53 zurück. // Beispiel var date = neues Datum ('10/20/2022 14:30:00 '); Ext.date.getweekofyear (Datum); // Return 42 // ext.date.isleapyear (Datum) ist das Jahr, in dem sich das Datum befindet? // @param {Datum} Datum. // @return {boolean} true bedeutet Schaltjahr, Falsch bedeutet flaches Jahr. // Beispiel var date = neues Datum ('10/20/2022 14:30:00 '); Ext.date.islapyear (Datum); // Return true // ext.date.now () gibt die Anzahl der Millisekunden von der aktuellen Zeit bis 1. Januar 1970 zurück. // @return {number} Gibt die Anzahl der Millisekunden zurück. // Beispiel var timestamp = ext.date.now (); // 1351666679575 var Datum = neues Datum (Zeitstempel); // Mi 31. Oktober 2012 14:57:59 GMT+0800 (China Standard Time) // ext.date.Parse (Eingabe, Format, strenger) Datum.Parse () hat ähnliche Funktionen entsprechend dem Erstellungsdatum der Eingabezeichenfolge. // @param {String} Eingabedatum Zeichenfolge. // @param {String} Formatdatumformat. // @param {boolean} streng die Gültigkeit der Eingangszeichenfolge, die standardmäßig falsch ist. // @param {Date} Gibt das Erstellungsdatum zurück. // Beispiel var input = '31. Oktober 2012 14:30:00'; var format = 'y Jahr m Monat D Tag H: i: s'; var date = ext.date.Parse (Eingabe, Format, true); // Mi 31. Oktober 2012 14:30:00 GMT+0800 (China Standard Time)Beispiel: Implementieren Sie die Date -Auswahlregelung mit Woche (Woche)
1. Frage:
Können Sie das Problem der Woche mit Ext JS perfekt lösen?
Im ersten Artikel dieser Serie wird gesagt, dass EXTs DatePicker für die Woche nicht gesehen werden kann und von selbst erweitert werden muss.
Es gibt jedoch ein Problem bei der Erweiterung:
Die JavaScript -Sprachdatumobjekte beginnen jede Woche sonntags.
Die GetWeekofyear-Methode von Ext JS folgt jedoch ISO-8601 und beginnt jede Woche ab Montag. (Es gibt andere Methoden, die diesem Standard nicht folgen, ext JS mischt unterschiedliche Standards für Datums- und Zeitvertretung).
Ext.date.getweekofyear Der Rückgabewert dieser Methode ist eine Zahl zwischen 1 und 53.
Auf diese Weise treten einige Probleme auf:
Die Anzeige der Datumsanzeige von Ext Js beginnt am Sonntag: (SMTWTFS (Sonntag Montag Dienstag .. Samstag))
Wenn Sie jedoch die Woche in der ausgewählten Zeit erhalten, beginnt sie ab Sonntag. führen zu:
Jeden Sonntag wird 1 weniger sein (zum Beispiel am Sonntag, 2013/08/18, sollte es 34 Wochen dauern, diese Methode wird jedoch als Ende der Vorwoche berechnet, 33 Wochen).
Datum = neues Datum ("2013/08/18");
var week = ext.date.getweekofyear (Datum);
alert ("week ="+week);
Die Ext -JS -Datumsregelung wird standardmäßig für 42 Tage angezeigt, sodass die Interaktion zwischen zwei Jahren Probleme geben wird.
Ist es 53 Wochen in diesem Jahr? Es ist immer noch die erste Woche des nächsten Jahres.
2. Lösung:
Durch die Kombination des Datumsobjekts von JS und dem Ext.Date von Ext JS erkennen wir den Erwerb der Woche.
Der Sonntag ist der erste Tag jeder Woche
Die Anzahl der Wochen pro Jahr stammt von (1-52). Wenn es 52 Wochen überschreitet, wird es bis in die erste Woche des nächsten Jahres gezählt. Zum Beispiel ist 2013/12/29 die 53 -Woche 2013, die bis in die erste Woche des Jahres 2014 gezählt wird.
Kehren Sie in das Wochenformat zurück wie "W1334"
/ * * Rückkehr als W1334 () 2013/08/20 * 1. Wenn Sonntag ==> Woche = Woche +1 * GetWeekofyear (ext Verwenden Sie ISO-8601, Woche, Beginn Month) * JS-Datum (Woche beginnen Sonntag beginnen) * 2. Wenn Woche> 52 ==> Jahr = Jahr +1; Woche = Woche - 52; * 3. Wenn Monat == 11 (12 Monats) und Woche <2 ==> Jahr = Jahr +1; */function getweekStrofdate (Datum) {var weektr = null; if (Datum! = NULL) {WOLLETR = "W"; var dateyear = date.getingfullyear (); var dateWeek = ext.date.getweekofyear (Datum); var firstdayofmonth = ext.date.getFirstdayofmonth (Datum); var day = date.getDate (); var monat = date.getMonth (); // Wochentag 0-6 var wochentag = date.getday (); if (wochentag === 0) {DatumWeek ++; } // Woche> 52 ==> Jahr +1 if (monat == 11) {if (DatumWeek> 52) {Dateyear += 1; DateWeek -= 52; } else if (DatumWeek <2) {Dateyear += 1; }} var yectr = dateyear.toString (); ebaltr = yearytr.substring (2,4); var dateWeekstr = DatumWeek.toString (); if (DateWeekStr.length <2) {DateWeekstr = "0" + DateWeekstr; } Weektr += Jahre; Weektr += DateWeekstr; } return weektr;}