Assumindo que você tenha 6 campos de formulário, os três primeiros para representar a data inicial, (inicio_dia, inicio_mes e inicio_ano), e os outros três para representar a data final (fim_dia, fim_mes, fim_ano), usando o Dojo Toolkit é muito fácil colocar nas datas de início a segunda-feira da semana passada e na data final, o domingo da semana passada.

Aqui vai a função que eu uso:

JAVASCRIPT:
  1. function periodo_semana_passada()
  2. {
  3.     var data_atual = new Date();
  4.  
  5.     // Dia da semana atual (1 segunda, 7 domingo)
  6.     var weekday = dojo.date.format(data_atual, '%u');
  7.  
  8.     // O dia do ano servirá para colocarmos no objeto de data um novo valor
  9.     var dia_do_ano = dojo.date.getDayOfYear(data_atual) - 7;
  10.     var data_inicio = dojo.date.setDayOfYear(data_atual, dia_do_ano - (weekday - 2));
  11.     // O final é a segunda-feira mais seis dias
  12.     var data_fim = dojo.date.add(data_inicio, 'day', 6);
  13.  
  14.     document.getElementById('inicio_dia').value = dojo.date.format(data_inicio, '%d');
  15.     document.getElementById('inicio_mes').value = dojo.date.format(data_inicio, '%m');
  16.     document.getElementById('inicio_ano').value = dojo.date.format(data_inicio, '%Y');
  17.     document.getElementById('fim_dia').value = dojo.date.format(data_fim, '%d');
  18.     document.getElementById('fim_mes').value = dojo.date.format(data_fim, '%m');
  19.     document.getElementById('fim_ano').value = dojo.date.format(data_fim, '%Y');
  20. }

Depois é só chamar a função em algum evento, por exemplo:

HTML:
  1. preencher com a semana <a href="#" onclick="periodo_semana_passada();">passada</a>

blog comments powered by Disqus

Português flagItaliano flagCoreano flagChinês (simplificado) flagEnglish flagAlemâo flagFrancês flagEspanhol flag
Japonês flagÁrabe flagRusso flagHolandês flagBúlgaro flagTcheco flagCroata flagDinamarquês flag
Finlandês flagHindu flagPolonês flagRomeno flagSueco flagGrego flagNorueguês flag 
By N2H
96 DOLETAS de desconto na hospedagem Dreamhost!
Use o "PROMO CODE" INERCIA. LAMP com 20GB de espaço e 1TB de transferência.

Artigos relacionados

Categories