Ext.Date é um singleton que encapsula uma série de funções de operação de data e estende as funções da data do JavaScript. O seguinte lista algumas funções comumente usadas.
Funções básicas:
Vamos dar uma olhada em alguns exemplos em detalhes abaixo:
// ext.date.add (data, intervalo, valor) Adicionar ou diminuir o tempo até o momento. Esta função não altera o valor do objeto Data original, mas retorna um novo objeto de data. // @param {date} data date date objeto. // @param {String} Unidade de valor de intervalo, você pode escolher 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 o valor que o objeto de data precisa ser adicionado. // @return {date} retorna o objeto Data após o valor adicionado. // Exemplo var date = ext.date.add (new Date ('10/29/2006 '), ext.date.day, 5); // Adicione 5 dias console.log (data); // Resultado de retorno FRI 03 de novembro de 2006 00:00:00 GMT+0800 (China Standard Time) var date = ext.date.add (new Date ('10/29/2006 '), ext.date.day, -5); // reduz 5 dias, se o valor for negativo, diminuirá. console.log (data); // Retorno Resultado Ter 24 de outubro de 2006 00:00:00 GMT+0800 (China Standard Time) Var Date = Ext.date.add (New Date ('10/29/2006 '), ext.date.year, 2); // Adicionar 2 anos console.log (data); // Resultado de retorno Qua 29 de outubro de 2008 00:00:00 gmt+0800 (hora padrão da China) // ext.date.between (data, start, fim) determine se a data está entre o início e o fim. // @param {date} data a data a ser julgada. // @param {date} start // @param {date} end // @return {boolean} Se a data retornar TRUE entre o início e o fim, caso contrário, retorne false. // Exemplo var date = new Date ('10/29/2006 '); var start = new Date ('10/5/2006 '); var end = new Date ('11/15/2006 '); Ext.date.between (data, start, fim); // retorna true // ext.date.cleartime (data, clone) Defina a hora da data para 00 horas, 00 minutos, 00 segundos, 000 milissegundos. // @param {date} date // @param {bollean} clone parâmetros opcionais. Se for verdade, uma cópia da data é retornada e, se falsa, a data em si é retornada, que padrão é falsa. // @return {date} Retorna a data definida. // Exemplo var date = new Date ('10/30/2012 14:30:00 '); Ext.date.cleartime (data); // Retorno Ter 30 de outubro de 2012 00:00:00 GMT+0800 (Hora padrão da China) // Ext.date.clone (data) Uma cópia da data clonada. // @param {date} date // @return {date} Retorna a data clonada. // Exemplo var orig = new Date ('10/30/2012 '); var cópia = ext.date.clone (orig); // clone um valor // ext.date.format (data, formato) formato a data e retorne a sequência formatada. // @param {data} data. // @param {string} formato de data do formato, ano y, m-mês, dia D, h-24 horas, i-minute, s-scends // @return {string} retorna a sequência formatada. // Exemplo var date = new Date ('10/20/2012 14:30:00 '); Ext.date.format (data, 'ymd h: i: s'); // 2012-10-20 14:30:00 ext.date.format (data, 'y Ano M Mês D Data H: i: S'); // 20 de outubro de 2012 14:30:00 // ext.date.getdayofyear (data) Obtenha a data do ano // @param {date} data. // @return {número} Retorna o número de dias, com um alcance de valor de 0 ~ 364 e, se for um ano bissexto, há 365. // Exemplo var date = new Date ('10/20/2012 14:30:00 '); Ext.date.getdayofyear (data); // Retornar 293 // ext.date.getDaysinmonth (data) obter a data é o dia do mês // @param {date} data. // @return {número} Retorna o número de dias. // Exemplo var date = new Date ('10/20/2012 14:30:00 '); Ext.date.getdayofyear (data); // retorna 31 // ext.date.getfirstdateofmonth (data) Obtenha o primeiro dia do mês em que a data está localizada // @param {date} data. // @return {date} retorna o primeiro dia do mês. // Exemplo var date = new Date ('10/20/2012 14:30:00 '); Ext.date.getfirstDateofmonth (data); // Retornar segunda -feira, 01 de outubro de 2012 00:00:00 GMT+0800 (Hora padrão da China) // ext.date.getfirstdayofmonth (data) Obtenha a semana do primeiro dia do mês em que a data está localizada // @param {date} data da data. // @return {número} retorna a semana do primeiro dia do mês, com um alcance de valor de 0 ~ 6. // Exemplo var date = new Date ('10/20/2012 14:30:00 '); Ext.date.getfirstdayofmonth (data); // retorna 1, indicando segunda -feira // ext.date.getLastDateofmonth (data) Obtenha o último dia do mês em que a data está localizada // @param {date} data. // @return {date} Retorna o último dia do mês em que você está. Ext.date.getLastDateOfmonth (data); // Retornar quarta -feira 31 de outubro de 2012 00:00:00 GMT+0800 (China Standard Hora) // ext.date.getLastDayofmonth (data) Obtenha a semana do último dia do mês em que a data está localizada // @param {data} data. // @return {número} retorna a semana do último dia do mês, com um alcance de valor de 0 ~ 6. // Exemplo var date = new Date ('10/20/2012 14:30:00 '); Ext.date.getLastDayofmonth (data); // retorna 3, indicando quarta -feira // ext.date.getweekofyear (data) Obtenha a semana da semana do ano em que a data está localizada // @param {date} data. // @return {número} Retorna a semana do ano, com um alcance de valor de 1 ~ 53. // Exemplo var date = new Date ('10/20/2012 14:30:00 '); Ext.date.getweekofyear (data); // retorna 42 // ext.date.isleapyear (data) é o ano em que a data está localizada? // @param {data} data. // @return {boolean} true significa ano salto, false significa ano plano. // Exemplo var date = new Date ('10/20/2012 14:30:00 '); Ext.date.isleapyear (data); // retorna true // ext.date.now () retorna o número de milissegundos do horário atual a 1 de janeiro de 1970. // @return {número} Retorna o número de milissegundos. // exemplo var timestamp = ext.date.now (); // 1351666679575 VAR DATE = NOVA DATA (TIMESTAMP); // Qua 31 de outubro de 2012 14:57:59 GMT+0800 (China Standard Time) // ext.date.parse (entrada, formato, rigoroso) date.parse () tem funções semelhantes de acordo com a data de criação da string de entrada. // @param {string} string de data de entrada. // @param {String} Formato Formato Data. // @param {boolean} rigoroso verifique a validade da sequência de entrada, que é falsa por padrão. // @param {date} retorna a data da criação. // Exemplo var input = '31 de outubro de 2012 14:30:00'; var format = 'y Ano M Mês D Dia H: i: S'; var date = ext.date.parse (entrada, formato, true); // Qua 31 de outubro de 2012 14:30:00 GMT+0800 (China Standard Time)Exemplo: Controle de seleção de data do implemento com semana (semana)
1. Pergunta:
Você pode resolver perfeitamente o problema da semana usando o Ext JS?
No primeiro artigo desta série, diz -se que o DatePicker de EXT não pode ser visto para a semana e precisa ser expandido por si só.
No entanto, há um problema ao expandir:
Os objetos de data da linguagem JavaScript começam aos domingos a cada semana.
No entanto, o método GetWeekofyear da EXT JS segue a ISO-8601 e começa toda semana a partir de segunda-feira. (Existem outros métodos que não seguem esse padrão, o Ext JS mistura diferentes padrões de representação de data e hora).
Ext.date.getweekofyear O valor de retorno desse método é um número entre 1 e 53.
Dessa maneira, surgirão alguns problemas:
A exibição da data de exibição do controle do Ext JS começa no domingo: (SMTWTFS (domingo segunda -feira terça -feira .. sábado))
No entanto, quando você recebe a semana até o horário selecionado, começa no domingo. levar a:
Todo domingo será 1 a menos (por exemplo, no domingo, 2013/08/18, deve ser 34 semanas, mas esse método é calculado como o final da semana anterior, 33 semanas)
data = nova data ("2013/08/18");
var semana = ext.date.getweekofyear (data);
alerta ("semana ="+semana);
O controle de data do Ext JS é exibido por 42 dias por padrão, portanto, haverá problemas na interação entre dois anos.
São 53 semanas naquele ano? Ainda é a primeira semana do ano seguinte.
2. Solução:
Combinando o objeto Data de JS e o Ext.Date of Ext JS, percebemos a aquisição da string da semana.
Domingo é o primeiro dia de cada semana
O número de semanas por ano é de (1-52). Se exceder 52 semanas, será contado na primeira semana do ano seguinte. Por exemplo, 2013/12/29 é a 53 semana de 2013, que é contada até a primeira semana de 2014.
Retorne ao formato da semana como "W1334"
/ * * Retorne como w1334 () 2013/08/20 * 1. Se domingo ==> semana = semana +1 * getweekofyear (Ext Use ISO-8601, semana de início do mês) * JS DAT (semana comece domingo) * 2. Se semana> 52 ==> ano = ano +1; Semana = semana - 52; * 3. Se mês == 11 (12 meses) e semana <2 ==> ano = ano +1; */function getweekstrofdate (date) {var wesestr = null; if (date! = null) {Weekstr = "W"; var dateyear = date.getlyear (); var dateweek = ext.date.getweekofyear (data); var FirstDayofmonth = ext.date.getfirstdayofmonth (data); var dia = date.getDate (); var mês = date.getMonth (); // dia da semana 0-6 var weeeeeekday = date.getday (); if (dia da semana === 0) {dateweek ++; } // semana> 52 ==> ano +1 if (mês == 11) {if (dateweek> 52) {dateyear += 1; DateWeek -= 52; } else if (dataweek <2) {dateyear += 1; }} var anostr = dateyear.toString (); anos) = anostr.substring (2,4); var dateweekstr = dateweek.toString (); if (dateweekstr.length <2) {dateweekstr = "0" + dateweektr; } Weekstr += anosTr; Weekstr += DateWeekstr; } retornar Weekstr;}