Ext.Date est un singleton qui résume une série de fonctions de fonctionnement de date et étend les fonctions de la date JavaScript. Le suivant répertorie certaines fonctions couramment utilisées.
Fonctions de base:
Jetons un coup d'œil à quelques exemples en détail ci-dessous:
// ext.date.add (date, intervalle, valeur) ajouter ou diminuer le temps à ce jour. Cette fonction ne modifie pas la valeur de l'objet date d'origine, mais renvoie un nouvel objet de date. // @param {date} date d'origine objet d'origine. // @param {String} Unité de valeur d'intervalle, vous pouvez choisir Ext.Date.Day, ext.date.hour, ext.date.minute, ext.date.month, // ext.date.second, ext.date.year, ext.date.milli. // @param {nombre} Valeur La valeur que l'objet date doit être ajouté. // @return {date} Renvoie l'objet Date après la valeur ajoutée. // Exemple Var Date = ext.date.add (nouvelle date ('10 / 29/2006 '), ext.date.day, 5); // ajouter 5 jours console.log (date); // Retour Résultat vendre nov 03 2006 00:00:00 GMT + 0800 (Chine Standard Heure) Var Date = ext.date.add (nouvelle date ('10 / 29/2006 '), ext.date.Day, -5); // Réduit 5 jours, si la valeur est négative, elle diminuera. console.log (date); Cette // ajouter 2 ans Console.log (date); // Retour Résultat mer 29 octobre 2008 00:00:00 GMT + 0800 (heure norme en porcelaine) // ext.date.between (date, démarrage, fin) Déterminez si la date est entre le début et la fin. // @param {date} Date de la date à juger. // @param {date} start // @param {date} end // @return {boolean} Si la date renvoie vrai entre le début et la fin, sinon renvoyez false. // Exemple Var Date = Nouvelle date ('10 / 29/2006 '); var start = new Date ('10 / 5/2006 '); var end = new Date ('11 / 15/2006 '); Ext.date.between (date, démarrage, fin); // Renvoie true // ext.date.cleartime (date, clone) définir l'heure de la date à 00, 00 minutes, 00 secondes, 000 millisecondes. // @param {date} date // @param {bollean} clone paramètres facultatifs. Si c'est vrai, une copie de la date est renvoyée, et en cas de faux, la date elle-même est renvoyée, ce qui par défaut est faux. // @return {date} Renvoie la date définie. // Exemple Var Date = Nouvelle date ('10 / 30/2012 14:30:00 '); Ext.date.cleartime (date); // RETOUR TUe 30 oct 2012 00:00:00 GMT + 0800 (Heure standard en Chine) // ext.date.clone (date) Une copie de la date clonée. // @param {date} date // @return {date} renvoie la date clonée. // Exemple var orig = new Date ('10 / 30/2012 '); var copy = ext.date.clone (orig); // cloner une valeur // ext.date.format (date, format) format la date et renvoyez la chaîne formatée. // @param {date} date de date. // @param {String} Format Date Format, y-Year, M-Month, J-Day, H-24 Hours, I-Minute, S-Seconds // @return {String} Renvoie la chaîne formatée. // Exemple Var Date = Nouvelle Date ('10 / 20/2012 14:30:00 '); Ext.date.format (date, 'ymd h: i: s'); // 2012-10-20 14:30:00 ext.date.format (date, «y an m mois d date h: i: s»); // 20 octobre 2012 14:30:00 // ext.date.getDayofyear (date) Obtenez la date de l'année // @param {date} Date de date. // @return {numéro} renvoie le nombre de jours, avec une plage de valeur de 0 à 364, et s'il s'agit d'une année de saut, il y a 365. // Exemple Var Date = new Date ('10 / 20/2012 14:30:00 '); Ext.date.getDayofyear (date); // RETOUR 293 // ext.date.getDaySinMonth (Date) Obtenez la date est le jour du mois // @param {date} Date de date. // @return {numéro} renvoie le nombre de jours. // Exemple Var Date = Nouvelle Date ('10 / 20/2012 14:30:00 '); Ext.date.getDayofyear (date); // RETOUR 31 // ext.date.getFirstDateOfMonth (Date) Obtenez le premier jour du mois où la date est située // @param {date} Date de date. // @return {Date} Renvoie le premier jour du mois. // Exemple Var Date = Nouvelle Date ('10 / 20/2012 14:30:00 '); Ext.date.getFirstDateOfMonth (date); // RETOUR MON 01 octobre 2012 00:00:00 GMT + 0800 (Heure standard en Chine) // ext.date.getFirstDayOfMonth (Date) Obtenez la semaine du premier jour du mois où la date est située // @param {Date} Date Date. // @return {numéro} renvoie la semaine du premier jour du mois, avec une plage de valeur de 0 à 6. // Exemple Var Date = Nouvelle Date ('10 / 20/2012 14:30:00 '); Ext.date.getFirstDayOfMonth (date); // retour 1, indiquant lundi // ext.date.getlastDateOfMonth (date) Obtenez le dernier jour du mois où la date est située // @param {date} Date de date. // @return {Date} Renvoie le dernier jour du mois dans lequel vous vous trouvez. // Exemple Var Date = new Date ('10 / 20/2012 14:30:00 '); Ext.date.getLastDateOfMonth (date); // RETOUR Mer 31 octobre 2012 00:00:00 GMT + 0800 (Heure standard en Chine) // ext.date.getlastDayofMonth (Date) Obtenez la semaine du dernier jour du mois où la date est située // @param {date} Date de date. // @return {numéro} renvoie la semaine du dernier jour du mois, avec une plage de valeur de 0 à 6. // Exemple Var Date = Nouvelle Date ('10 / 20/2012 14:30:00 '); Ext.date.getLastDayOfMonth (date); // Renvoie 3, indiquant mercredi // ext.date.getweekofyear (date) Obtenez la semaine de l'année où la date est située // @param {date} Date de date. // @return {numéro} renvoie la semaine de l'année, avec une plage de valeur de 1 ~ 53. // Exemple Var Date = Nouvelle Date ('10 / 20/2012 14:30:00 '); Ext.date.getweekofyear (date); // retour 42 // ext.date.isapyear (date) L'année où la date est située? // @param {date} date de date. // @return {boolean} vrai signifie année leap, faux signifie l'année plate. // Exemple Var Date = Nouvelle Date ('10 / 20/2012 14:30:00 '); Ext.date.isapyear (date); // return true // ext.date.now () renvoie le nombre de millisecondes de l'heure actuelle au 1er janvier 1970. // Date.Now () implémente déjà la même fonction dans Chrome, IE9 et IE10. // @return {numéro} renvoie le nombre de millisecondes. // Exemple var horodatage = ext.date.now (); // 1351666679575 Var Date = Nouvelle date (horodatage); // mer 31 octobre 2012 14:57:59 GMT + 0800 (heure standard de Chine) // ext.date.parse (entrée, format, strict) Date.Parse () a des fonctions similaires en fonction de la date de création de la chaîne d'entrée. // @param {String} String de date d'entrée. // @param {String} Format Date Format. // @param {boolean} stricte vérifie la validité de la chaîne d'entrée, qui est fausse par défaut. // @param {date} Renvoie la date de création. // Exemple Var Input = '31 octobre 2012 14:30:00'; var format = 'y année m mois d jour h: i: s'; var date = ext.date.parse (entrée, format, true); // mer 31 octobre 2012 14:30:00 GMT + 0800 (heure standard en Chine)Exemple: implémenter le contrôle de la sélection de la date avec la semaine (semaine)
1. Question:
Pouvez-vous parfaitement résoudre le problème de la semaine en utilisant EXT JS?
Dans le premier article de cette série, il est dit que Datepicker d'EXT ne peut pas être vu pour la semaine et doit être élargi par lui-même.
Cependant, il y a un problème lors de l'expansion:
Les objets de la date de langue JavaScript commencent le dimanche chaque semaine.
Cependant, la méthode Getweekofyear d'EXT JS suit ISO-8601 et commence chaque semaine à partir de lundi. (Il existe d'autres méthodes qui ne suivent pas cette norme, EXT JS mélange différentes normes de représentation de date et de temps).
Ext.date.getweekofyear La valeur de retour de cette méthode est un nombre entre 1 et 53.
De cette façon, certains problèmes surviendront:
L'affichage du contrôle de l'affichage de la date d'EXT JS commence dimanche: (SMTWTFS (dimanche lundi mardi .. samedi)))
Cependant, lorsque vous obtenez la semaine à l'heure sélectionnée, cela commence à partir de dimanche. conduire à:
Chaque dimanche sera 1 de moins (par exemple, le dimanche 2013/08/18, il devrait être de 34 semaines, mais cette méthode est calculée comme la fin de la semaine précédente, 33 semaines)
Date = nouvelle date ("2013/08/18");
var semaine = ext.date.getweekofyear (date);
alert ("semaine =" + semaine);
Le contrôle de date EXT JS est affiché pendant 42 jours par défaut, il y aura donc des problèmes dans l'interaction entre deux ans.
Est-ce 53 semaines cette année-là? C'est toujours la première semaine de l'année prochaine.
2. Solution:
En combinant l'objet de date de JS et le st.Date d'EXT JS, nous réalisons l'acquisition de la chaîne de la semaine.
Le dimanche est le premier jour de chaque semaine
Le nombre de semaines par an provient de (1-52). S'il dépasse 52 semaines, il sera compté à la première semaine de l'année prochaine. Par exemple, 2013/12/29 est la 53 semaine de 2013, qui est comptée à la première semaine de 2014.
Retour au format de la semaine comme "W1334"
/ * * Retour comme w1334 () 2013/08/20 * 1. Si dimanche ==> semaine = semaine + 1 * GetWeekofyear (use use iso-8601, semaine de début Mois) * JS Date (semaine commence le dimanche) * 2. Si semaine> 52 ==> année = an +1; semaine = semaine - 52; * 3. Si mois == 11 (12 mois) et semaine <2 ==> année = an +1; * / fonction getweekstrofdate (date) {var weekstr = null; if (date! = null) {weekstr = "w"; var dateyear = date.getlyar (); var dateweek = ext.date.getweekofyear (date); var FirstDayOfMonth = ext.date.getFirstDayOfMonth (date); var day = date.getDate (); var mois = date.getMonth (); // en semaine 0-6 var en semaine = date.getDay (); if (Weekday === 0) {dateweek ++; } // semaine> 52 ==> année +1 if (mois == 11) {if (dateweek> 52) {dateyear + = 1; Dateweek - = 52; } else if (dateweek <2) {dateyear + = 1; }} var annuer = dateyear.toString (); Yearstr = Yearstr.substring (2,4); var dateweekstr = dateweek.toString (); if (dateweekstr.length <2) {dateweekStr = "0" + dateweekstr; } WeeksTr + = Yearstr; WeeksTr + = Dateweekstr; } retour de semaines;}