Newsgroup: it.comp.lang.javascript
Titolo: minDate datepicker

Scusate, vorrei una mano su questa problematica postata per mio errore
su it.comp.www.php 
 
Vorrei far apparire il mio calendario (datepicker) a partire da una data
che é presente in un campo di output (la stessa viene valorizzata
leggendo un database).
 
Di seguito lo script del datepicker:
 
<script type="text/javascript">
$(function() {
  var dtbase = ($("#dal_fld").val());  
  $("#al").datepicker({
    dateFormat:'dd/mm/yy',
    monthNamesShort:
['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'],
    dayNamesMin: ['Do','Lu','Ma','Me','Gio','Ve','Sa'],
    constrainInput: true,
    gotoCurrent: true, 
    showOn: 'button',
    changeMonth: true,
    buttonImage: 'img/calendario_icon.gif',
    buttonImageOnly: true,
    minDate: new Date(dtbase.substr(6, 4), dtbase.substr(3, 2),
dtbase.substr(0, 2)) 
  });  
});
</script>
 
e di seguito le righe dove sono presenti i due campi: il primo di output
valorizzato prendendo la data da un database (vedi $dtstart) e
visualizzato nel formato GG/MM/AAAA ed il secondo di input con il
datepicker. Inoltre metto lo stesso $dtstart in un campo nascosto
(<input type='hidden' name='dal_fld' id='dal_fld' value = '<?php echo
$dtstart;?>' </input>) 
 
<td valign='top'>
<label for="dal" id="dal" name="dal">
<font color = "green">Dal giorno: <?php echo $dtstart;?></font>
<input type='hidden' name='dal_fld' id='dal_fld' value = '<?php echo
$dtstart;?>' </input>
<label for="al">
<font color = "green">Al giorno:</font></label>
<input type="text" id="al" name="al"/>         
</td>
 
il problema é che se il primo campo a video me lo visualizza con il
valore 21/08/2013 (oggi ad esempio) il datepicker mi parte dal mese di
Settembre con il primo giorno selezionabile al 21. Vorrei poter aver il
datepicker con la prima data selezionabile al 21/08/2013 cioé oggi,
inibendo tutti i giorni precedenti a questa data.
 
Dov'é l'errore ?????  
 

 Dov'ï¿œ l'errore ?????
 
Potrebbe essere semplicemente che non hai considerato che il conteggio 
dei mesi parte da zero nel costruttore di Date.
 
Quindi:
 
new Date(
     dtbase.substr(6, 4),
     dtbase.substr(3, 2) - 1,
     dtbase.substr(0, 2)
);
 
 
 


Il fatto che parta da un mese in più non ti suggerisce qualcosa?
Prova a vedere cosa restituisce getMonth() di una data qualsiasi ...
Ciao
 
 

Siiiiiiiiiiiiiii,
 
grazie Andrea. Ho sbattuto la testa un pomeriggio intero alla ricerca
dell'errore.!!!!!
 
Ne vorrei approfittare (senza dover aprire una nuova discussione) per
chiederti come far apparire il nome dei mesi in intero in Italiano. 
Al momento io ho provato con il seguente array:
 
monthNamesShort: [ "Gennaio", "Febbraio", "Marzo", ......
 
ma i mesi mi appaiono in Inglese (es. August 2013.....)
 
Vera 
 


io uso il file ui.datepicker.it.js e poi nella dichiarazione di datepicker 
metto
$('#id_calendario').datepicker({
            showButtonPanel: true,
			regional: 'it',
		constrainInput: true
		});
-- 
Roberto Tagliaferri-Linux user #30785 <-> r.tagliaferri@(forse)
tosnet.it
 
www.robyt.eu
 
 

Ok Roberto,
 
va bene anche il tuo di suggerimento !
 
Grazie 1000
Vera
 
 
 

 ma i mesi mi appaiono in Inglese (es. August 2013.....)
 
puoi provare ad usare questo codice di inizializzazione:
 
/* Italian initialisation for the jQuery UI date picker plugin. */
/* Written by Apaella (
apa...@gmail.com
). */
jQuery(function($){
	$.datepicker.regional['it_IT'] = {
		clearText: 'Svuota', clearStatus: 'Annulla',
		closeText: 'Chiudi', closeStatus: 'Chiudere senza modificare',
		prevText: '&#x3c;Prec', prevStatus: 'Mese precedente',
		prevBigText: '&#x3c;&#x3c;', prevBigStatus: 'Mostra l\'anno precedente',
		nextText: 'Succ&#x3e;', nextStatus: 'Mese successivo',
		nextBigText: '&#x3e;&#x3e;', nextBigStatus: 'Mostra l\'anno successivo',
		currentText: 'Oggi', currentStatus: 'Mese corrente',
		monthNames: ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno',
		'Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'],
		monthNamesShort: ['Gen','Feb','Mar','Apr','Mag','Giu',
		'Lug','Ago','Set','Ott','Nov','Dic'],
		monthStatus: 'Seleziona un altro mese', yearStatus: 'Seleziona un altro anno',
		weekHeader: 'Sm', weekStatus: 'Settimana dell\'anno',
		dayNames:
['Domenica','Luned&#236','Marted&#236','Mercoled&#236','Gioved&#236','Venerd&#236','Sabato'],
		dayNamesShort: ['Dom','Lun','Mar','Mer','Gio','Ven','Sab'],
		dayNamesMin: ['Do','Lu','Ma','Me','Gio','Ve','Sa'],
		dayStatus: 'Usa DD come primo giorno della settimana', dateStatus:
'\'Seleziona\' D, M d',
		dateFormat: 'dd/mm/yy', firstDay: 1,
		initStatus: 'Scegliere una data', isRTL: false};
	$.datepicker.setDefaults($.datepicker.regional['it_IT']);
});