Ext.Date es un singleton que encapsula una serie de funciones de operación de fecha y extiende las funciones de la fecha de JavaScript. Las siguientes enumeras algunas funciones de uso común.
Funciones básicas:
Echemos un vistazo a algunos ejemplos en detalle a continuación:
// ext.date.add (fecha, intervalo, valor) Agregar o disminuir el tiempo hasta la fecha. Esta función no cambia el valor del objeto de fecha original, pero devuelve un nuevo objeto de fecha. // @param {fecha} Fecha de fecha de fecha original. // @param {String} Unidad de valor de intervalo, puede elegir ext.date.day, ext.date.hour, ext.date.minute, ext.date.month, // ext.date.second, ext.date.year, ext.date.milli. // @param {número} Valor El valor que se debe agregar el objeto Fecha. // @return {date} Devuelve el objeto de fecha después del valor agregado. // ejemplo var date = ext.date.add (nueva fecha ('10/29/2006 '), ext.date.day, 5); // agregar 5 días console.log (fecha); // Resultado de retorno viernes de noviembre 03 2006 00:00:00 GMT+0800 (Tiempo estándar de China) var fecha = ext.date.add (nueva fecha ('10/29/2006 '), ext.date.day, -5); // Reduce 5 días, si el valor es negativo, disminuirá. console.log (fecha); // Resultado de retorno martes 24 de octubre 2006 00:00:00 GMT+0800 (Tiempo estándar de China) var fecha = ext.date.add (nueva fecha ('10/29/2006 '), ext.date.year, 2); // agregar 2 años console.log (fecha); // Resultado de retorno mié 29 de octubre 2008 00:00:00 GMT+0800 (hora estándar de China) // ext.date.between (fecha, inicio, final) Determine si la fecha es entre el inicio y el final. // @param {fecha} Fecha de la fecha a juzgar. // @param {date} start // @param {date} end // @return {boolean} Si la fecha devuelve verdadero entre inicio y finalización, de lo contrario devuelve falso. // ejemplo var fecha = nueva fecha ('10/29/2006 '); var inicio = nueva fecha ('10/5/2006 '); var end = nueva fecha ('11/15/2006 '); Ext.date.between (fecha, inicio, final); // Devuelve True // ext.date.ClearTime (fecha, clon) Establezca la hora de la fecha en 00 horas, 00 minutos, 00 segundos, 000 milisegundos. // @param {date} date // @param {bollean} clon parámetros opcionales. Si es verdadero, se devuelve una copia de la fecha y, si es falso, la fecha en sí misma se devuelve, lo que predeterminado es falso. // @return {date} Devuelve la fecha establecida. // Ejemplo var fecha = nueva fecha ('10/30/2012 14:30:00 '); Ext.Date.ClearTime (fecha); // return mar 30 de octubre de 2012 00:00:00 GMT+0800 (hora estándar de China) // ext.date.clone (fecha) Una copia de la fecha clonada. // @param {date} fecha // @return {date} Devuelve la fecha clonada. // Ejemplo var orig = nueva fecha ('10/30/2012 '); var copy = ext.date.clone (orig); // clon un valor // ext.date.format (fecha, formato) formatear la fecha y devolver la cadena formatada. // @param {fecha} fecha fecha. // @param {String} Formato de formato Formato, Y-año, M-Month, D-Day, H-24 horas, I-Minute, S-Seconds // @return {String} Devuelve la cadena formateada. // Ejemplo var fecha = nueva fecha ('10/20/2012 14:30:00 '); Ext.date.format (fecha, 'ymd h: i: s'); // 2012-10-20 14:30:00 ext.date.format (fecha, 'y año m mes d fecha h: i: s'); // 20 de octubre de 2012 14:30:00 // ext.date.getdayofyear (fecha) Obtenga la fecha del año // @param {fecha} Fecha de fecha. // @return {número} Devuelve el número de días, con un rango de valor de 0 ~ 364, y si es un año bisiesto, hay 365. // Ejemplo var fecha = nueva fecha ('10/20/2012 14:30:00 '); Ext.date.getdayofyear (fecha); // Return 293 // ext.date.getdaysinmonth (fecha) Obtenga la fecha es el día del mes // @param {fecha} fecha de fecha. // @return {número} Devuelve el número de días. // Ejemplo var fecha = nueva fecha ('10/20/2012 14:30:00 '); Ext.date.getdayofyear (fecha); // Devuelve 31 // ext.date.getFirstDateOfMonth (fecha) Obtenga el primer día del mes donde se encuentra la fecha // @param {fecha} fecha de fecha. // @return {date} Devuelve el primer día del mes. // Ejemplo var fecha = nueva fecha ('10/20/2012 14:30:00 '); Ext.date.getFirstDateOfMonth (fecha); // regresa lunes 01 de octubre 2012 00:00:00 GMT+0800 (hora estándar de China) // ext.date.getfirstdayofmonth (fecha) Obtenga la semana del primer día del mes donde se encuentra la fecha // @param {fecha} fecha de fecha. // @return {número} Devuelve la semana del primer día del mes, con un rango de valor de 0 ~ 6. // Ejemplo var fecha = nueva fecha ('10/20/2012 14:30:00 '); Ext.date.getFirstdayOfMonth (fecha); // Regreso 1, que indica el lunes // ext.date.getLastDateOfMonth (fecha) Obtenga el último día del mes donde se encuentra la fecha // @param {fecha} fecha de fecha. // @return {date} Devuelve el último día del mes en el que se encuentra. // Ejemplo var fecha = nueva fecha ('10/20/2012 14:30:00 '); Ext.date.getLastDateOfMonth (fecha); // regreso el miércoles 31 de octubre de 2012 00:00:00 GMT+0800 (hora estándar de China) // ext.date.getlastdayofmonth (fecha) Obtenga la semana del último día del mes donde se encuentra la fecha // @param {fecha} fecha de fecha. // @return {número} Devuelve la semana del último día del mes, con un rango de valor de 0 ~ 6. // Ejemplo var fecha = nueva fecha ('10/20/2012 14:30:00 '); Ext.date.getlastdayofmonth (fecha); // regresa 3, que indica el miércoles // ext.date.getweekofyear (fecha) obtenga la semana del año en la que se encuentra la fecha // @param {fecha} fecha de fecha. // @return {número} Devuelve la semana del año, con un rango de valor de 1 ~ 53. // Ejemplo var fecha = nueva fecha ('10/20/2012 14:30:00 '); Ext.date.getweekofyear (fecha); // Return 42 // ext.date.eleapyear (fecha) es el año en que se encuentra la fecha? // @param {fecha} fecha fecha. // @return {boolean} Verdadero significa año salto, falso significa año plano. // Ejemplo var fecha = nueva fecha ('10/20/2012 14:30:00 '); Ext.Date.EseApyear (fecha); // return true // ext.date.now () Devuelve el número de milisegundos desde la hora actual hasta el 1 de enero de 1970. // date.now () ya implementa la misma función en Chrome, IE9 e IE10. // @return {número} Devuelve el número de milisegundos. // Ejemplo var timestamp = ext.date.now (); // 13516666679575 VAR fecha = nueva fecha (marca de tiempo); // miércoles 31 de octubre de 2012 14:57:59 GMT+0800 (hora estándar de China) // ext.Date.Parse (entrada, formato, estricto) date.Parse () tiene funciones similares según la fecha de creación de cadenas de entrada. // @param {String} String de fecha de entrada. // @param {String} Formato Formato de fecha. // @param {boolean} estricto Verifique la validez de la cadena de entrada, que es falsa de forma predeterminada. // @param {date} Devuelve la fecha de creación. // Ejemplo var Entrada = '31 de octubre de 2012 14:30:00'; formato var = 'y año m mes d día h: i: s'; var date = ext.Date.Parse (entrada, formato, true); // miércoles 31 de octubre de 2012 14:30:00 GMT+0800 (hora estándar de China)Ejemplo: Implementar el control de selección de fechas con la semana (semana)
1. Pregunta:
¿Puedes resolver perfectamente el problema de la semana usando Ext JS?
En el primer artículo de esta serie, se dice que el Picker de Ext no se puede ver durante la semana y debe expandirse solo.
Sin embargo, hay un problema al expandir:
Los objetos de fecha de idioma JavaScript comienzan los domingos cada semana.
Sin embargo, el método GetWeekofyear de Ext JS sigue a ISO-8601 y comienza cada semana a partir del lunes. (Existen otros métodos que no siguen este estándar, Ext JS mezcla diferentes estándares de representación de fecha y hora).
Ext.date.getweekofyear El valor de retorno de este método es un número entre 1 y 53.
De esta manera, surgirán algunos problemas:
La exhibición del control de exhibición de fecha de Ext JS comienza el domingo: (SMTWTFS (domingo lunes martes .. sábado))
Sin embargo, cuando obtienes la semana por la hora seleccionada, comienza desde el domingo. conducir a:
Todos los domingos serán 1 menos (por ejemplo, el domingo 2013/08/18, deben ser de 34 semanas, pero este método se calcula como el final de la semana anterior, 33 semanas)
fecha = nueva fecha ("2013/08/18");
var semana = ext.date.getweekofyear (fecha);
alerta ("Semana ="+Semana);
El control de fecha EXT JS se muestra durante 42 días por defecto, por lo que habrá problemas en la interacción entre dos años.
¿Son 53 semanas ese año? Sigue siendo la primera semana del próximo año.
2. Solución:
Combinando el objeto de fecha de JS y la Fecha Ext. de Ext JS, nos damos cuenta de la adquisición de la cadena de la semana.
El domingo es el primer día de cada semana
El número de semanas por año es de (1-52). Si supera las 52 semanas, se contará a la primera semana del próximo año. Por ejemplo, 2013/12/29 es la 53 semana de 2013, que se cuenta con la primera semana de 2014.
Regrese al formato de la semana como "W1334"
/ * * regresa como w1334 () 2013/08/20 * 1. if domingo ==> semana = semana +1 * getweekofyear (ext ÚSO ISO-8601, semana de inicio Mes) * JS Fecha (Semana Comienza el domingo) * 2. If Semana> 52 ==> Año = año +1; Semana = Semana - 52; * 3. Si mes == 11 (12 meses) y semana <2 ==> año = año +1; */function getweekstrofdate (date) {var weekstr = null; if (date! = null) {weekstr = "w"; var dateyear = date.getTliplyear (); var dateweek = ext.date.getweekofyear (fecha); var primero dayofmonth = ext.date.getFirstdayOfMonth (fecha); var day = date.getDate (); var mes = date.getMonth (); // lunes a la semana 0-6 var de la semana entre semana = date.getday (); if (weekday === 0) {dateweek ++; } // semana> 52 ==> año +1 if (mes == 11) {if (dateweek> 52) {dateyear += 1; dateweek -= 52; } else if (dateweek <2) {dateyear += 1; }} var añostr = dateyear.ToString (); YearsTr = Yearstr.Substring (2,4); var dateweekstr = dateWeek.ToString (); if (dateweekstr.length <2) {dateweekstr = "0" + dateweekstr; } weekstr += añostr; Weekstr += dateWeekstr; } return weekstr;}