Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Cambiar formato de fecha

Estas en el tema de Cambiar formato de fecha en el foro de Frameworks JS en Foros del Web. hola amigos, navegando en internet me encontre este codigo de un calendario picker, el problema es que necesito cambiar el formato de fecha ya que ...
  #1 (permalink)  
Antiguo 28/11/2011, 13:46
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 9 meses
Puntos: 1
Cambiar formato de fecha

hola amigos, navegando en internet me encontre este codigo de un calendario picker, el problema es que necesito cambiar el formato de fecha ya que cuando seleccionas una fecha me sale este formato de fecha:

selected date: Sun Nov 27 2011 09:17:47 GMT-0600

y quiero que el formato de fecha sea:

dd-mm-YYY

para despues pasarlo y recogerlo por $_GET alguien me puede ayudar la pagina es la siguiente

http://bugsvoice.com/applications/bu...PickerDemo.jsp

de ahi se pueden descargar los codigos o si es necesario pedirlos y los pegare aqui muchas gracias por sus respuestas!!!!
  #2 (permalink)  
Antiguo 28/11/2011, 14:04
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Cambiar formato de fecha

busca en el código el método setTime() una vez que lo tengas localizado trabaja con estos métodos
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 28/11/2011, 15:36
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Cambiar formato de fecha

Ya busque en el codigo pero no encuentro el setTime() lo que encuentro es esto


Código PHP:
 var deferredCallBack = function() {
      if (
typeof(options.callback) == "function") {
        if (
calendar.timer)
          
clearTimeout(calendar.timer);

        
calendar.timer setTimeout(function() {
          
options.callback(calendar);
        }, 
options.callbackDelay);
      }
    } 
y ya cambie por los valores de la tabla que me enviaste pero no muestra nada
  #4 (permalink)  
Antiguo 28/11/2011, 16:05
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Cambiar formato de fecha

este es el codigo completo

Código PHP:
jQuery.fn.calendarPicker = function(options) {
  
// --------------------------  start default option values --------------------------
  
if (!options.date) {
    
options.date = new Date();
  }

  if (
typeof(options.years) == "undefined")
    
options.years=0;

  if (
typeof(options.months) == "undefined")
    
options.months=3;

  if (
typeof(options.days) == "undefined")
    
options.days=4;

  if (
typeof(options.showDayArrows) == "undefined")
    
options.showDayArrows=true;

  if (
typeof(options.useWheel) == "undefined")
    
options.useWheel=true;

  if (
typeof(options.callbackDelay) == "undefined")
    
options.callbackDelay=500;

  if (
typeof(options.monthNames) == "undefined")
    
options.monthNames = ["Jan""Feb""Mar""Apr""May""Jun""Jul""Aug""Sep""Oct""Nov""Dec"];

  if (
typeof(options.dayNames) == "undefined")
    
options.dayNames = ["Sun""Mon""Tue""Wed""Thu""Fri""Sat"];


  
// --------------------------  end default option values --------------------------

  
var calendar = {currentDateoptions.date};
  
calendar.options options;

  
//build the calendar on the first element in the set of matched elements.
  
var theDiv this.eq(0);//$(this);
  
theDiv.addClass("calBox");

  
//empty the div
  
theDiv.empty();


  var 
divYears = $("<div>").addClass("calYear");
  var 
divMonths = $("<div>").addClass("calMonth");
  var 
divDays = $("<div>").addClass("calDay");


  
theDiv.append(divYears).append(divMonths).append(divDays);

  
calendar.changeDate = function(date) {
    
calendar.currentDate date;

    var 
fillYears = function(date) {
      var 
year date.getFullYear();
      var 
= new Date();
      
divYears.empty();
      var 
nc options.years*2+1;
      var 
parseInt((theDiv.width()-4-(nc)*4)/nc)+"px";
      for (var 
year options.years<= year options.yearsi++) {
        var 
= new Date(date);
        
d.setFullYear(i);
        var 
span = $("<span2>").addClass("calElement").attr("millis"d.getTime()).html(i).css("width",w);
        if (
d.getYear() == t.getYear())
          
span.addClass("today");
        if (
d.getYear() == calendar.currentDate.getYear())
          
span.addClass("selected2");
        
divYears.append(span);
      }
    }

    var 
fillMonths = function(date) {
      var 
month date.getMonth();
      var 
= new Date();
      
divMonths.empty();
      var 
oldday date.getDay();
      var 
nc options.months*2+1;
      var 
parseInt((theDiv.width()-4-(nc)*4)/nc)+"px";
      for (var 
= -options.months<= options.monthsi++) {
        var 
= new Date(date);
        var 
oldday d.getDate();
        
d.setMonth(month i);

        if (
d.getDate() != oldday) {
          
d.setMonth(d.getMonth() - 1);
          
d.setDate(28);
        }
        var 
span = $("<span>").addClass("calElement").attr("millis"d.getTime()).html(options.monthNames[d.getMonth()]).css("width",w);
if (
d.getYear() == t.getYear() && d.getMonth() == t.getMonth())
          
span.addClass("today");
        if (
d.getYear() == calendar.currentDate.getYear() && d.getMonth() == calendar.currentDate.getMonth())
          
span.addClass("selected");
        
divMonths.append(span);

      }
    }

    var 
fillDays = function(date) {
      var 
day date.getDate();
      var 
= new Date();
      
divDays.empty();
      var 
nc options.days*2+1;
      var 
parseInt((theDiv.width()-4-(options.showDayArrows?12:0)-(nc)*4)/(nc-(options.showDayArrows?2:0)))+"px";
      for (var 
= -options.days<= options.daysi++) {
        var 
= new Date(date);
        
d.setDate(day i)
        var 
span = $("<span>").addClass("calElement").attr("millis"d.getTime())
        if (
== -options.days && options.showDayArrows) {
          
span.addClass("prev");
        } else if (
== options.days && options.showDayArrows) {
          
span.addClass("next");
        } else {
          
span.html("<span class=dayNumber>" d.getDate() + "</span><br>" options.dayNames[d.getDay()]).css("width",w);
          if (
d.getYear() == t.getYear() && d.getMonth() == t.getMonth() && d.getDate() == t.getDate())
            
span.addClass("today");
          if (
d.getYear() == calendar.currentDate.getYear() && d.getMonth() == calendar.currentDate.getMonth() && d.getDate() == calendar.currentDate.getDate())
            
span.addClass("selected");
        }
        
divDays.append(span);

      }
    }

    var 
deferredCallBack = function() {
      if (
typeof(options.callback) == "function") {
        if (
calendar.timer)
          
clearTimeout(calendar.timer);

        
calendar.timer setTimeout(function() {
          
options.callback(calendar);
        }, 
options.callbackDelay);
}
    }


    
fillYears(date);
    
fillMonths(date);
    
fillDays(date);

    
deferredCallBack();

  }

  
theDiv.click(function(ev) {
    var 
el = $(ev.target).closest(".calElement");
    if (
el.hasClass("calElement")) {
      
calendar.changeDate(new Date(parseInt(el.attr("millis"))));
    }
  });


  
//if mousewheel
  
if ($.event.special.mousewheel && options.useWheel) {
    
divYears.mousewheel(function(eventdelta) {
      var 
= new Date(calendar.currentDate.getTime());
      
d.setFullYear(d.getFullYear() + delta);
      
calendar.changeDate(d);
      return 
false;
    });
    
divMonths.mousewheel(function(eventdelta) {
      var 
= new Date(calendar.currentDate.getTime());
      
d.setMonth(d.getMonth() + delta);
      
calendar.changeDate(d);
      return 
false;
    });
    
divDays.mousewheel(function(eventdelta) {
      var 
= new Date(calendar.currentDate.getTime());
      
d.setDate(d.getDate() + delta);
      
calendar.changeDate(d);
      return 
false;
    });
  }


  
calendar.changeDate(options.date);
 return 
calendar;
}; 
  #5 (permalink)  
Antiguo 28/11/2011, 17:49
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Cambiar formato de fecha

parece que cuando pulsa se invoca la función
Cita:
calendar.changeDate(new Date(parseInt(el.attr("millis"))))
a esta se le pasa el valor de un atributo "millis" que por deducción lógica han de ser los milisegundos. obteniendo esos milisegundos puedes parsear la fecha con los métodos que te indiqué en el anterior post
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #6 (permalink)  
Antiguo 28/11/2011, 20:03
 
Fecha de Ingreso: mayo-2008
Mensajes: 103
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: Cambiar formato de fecha

¿No te basta extrayendo la fecha, pasándola a segundos y luego pasándola a la fecha que te interesa?

Es lo que yo solía hacer cuando necesitaba tratar con fechas de formatos diferentes.
  #7 (permalink)  
Antiguo 29/11/2011, 09:57
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Cambiar formato de fecha

Ya quedo, probe con las funciones que me indicaste IsaBelM y funciono solamente que cuando puse la funcion localDateString() me puso lo mismo pero en español, lo que hice es que fui obteniendo valor por valor, es decir primero obtube el dia con getDate(), despues el mes con getMonth() y por ultimo el año con getUTCFullYear().

Ahora tengo otro problema, cuando elijo un dia del calendario me actualiza la fecha en un span con id wtf, lo que quiero es que cuando de click en la fecha me mande a otra pagina con la fecha que elegi previamente en lugar de que me aparezca la fecha en el span

el codigo es el siguiente

Cita:
<span id="wtf"></span><!--Aqui muestra la fecha elegida-->

<script type="text/javascript">


var calendarPicker1 = $("#dsel1").calendarPicker({
monthNames:["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"],
dayNames: ["Dom", "Lun", "Mar", "Mie", "Jue", "Vie", "Sab"],

callback:function(cal) {

$("#wtf").html("Selected date: "+Fecha);//Esto es lo que va a mostrar en#wtf

}});

</script>
Alguien me puede echar la mano para modificar el codigo????

Etiquetas: jquery
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:54.