Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    909

    problema con calendario

    Ciao a tutti voi,

    ho un grosso problema con un popup calendario,
    lo script recupera la data corrente con tanto di minuti e secondi,
    mi aiutate a togliere i secondi??

    io ho provato ma siccome ha una funzione che recupera anche il valore inserito nella text area mi sballa la data

    il codice:
    codice:
    <HTML>
    <HEAD>
    <TITLE>Seleziona la data</TITLE>
    
    <script language="JavaScript">
    
    function show_calendar(str_target, str_datetime) {
    	var arr_months = ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno",
    		"Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"];
    	var week_days = ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa"];
    	var n_weekstart = 1; // day week starts from (normally 0 or 1)
    
    	var dt_datetime = (str_datetime == null || str_datetime =="" ?  new Date() : str2dt(str_datetime));
    	var dt_prev_month = new Date(dt_datetime);
    	dt_prev_month.setMonth(dt_datetime.getMonth()-1);
    	var dt_next_month = new Date(dt_datetime);
    	dt_next_month.setMonth(dt_datetime.getMonth()+1);
    	var dt_firstday = new Date(dt_datetime);
    	dt_firstday.setDate(1);
    	dt_firstday.setDate(1-(7+dt_firstday.getDay()-n_weekstart)%7);
    	var dt_lastday = new Date(dt_next_month);
    	dt_lastday.setDate(0);
    
    
    
    
    	var str_buffer = new String (
    		"<html>\n"+
    		"<head>\n"+
    		"	<title>Calendar</title>\n"+
    		"</head>\n"+
    		"<body bgcolor=\"White\">\n"+
    		"<table class=\"clsOTable\" cellspacing=\"0\" border=\"0\" width=\"100%\">\n"+
    		"<tr><td bgcolor=\"#4682B4\">\n"+
    		"<table cellspacing=\"1\" cellpadding=\"3\" border=\"0\" width=\"100%\">\n"+
    		"<tr>\n	<td bgcolor=\"#4682B4\"><a href=\"javascript:window.opener.show_calendar('"+
    		str_target+"', '"+ dt2dtstr(dt_prev_month)+"'+document.cal.time.value);\">"+
    		"<img src=\"779 prev.gif\" width=\"16\" height=\"16\" border=\"0\""+
    		" alt=\"previous month\"></a></td>\n"+
    		"	<td bgcolor=\"#4682B4\" colspan=\"5\">"+
    		"<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"
    		+arr_months[dt_datetime.getMonth()]+" "+dt_datetime.getFullYear()+"</font></td>\n"+
    		"	<td bgcolor=\"#4682B4\" align=\"right\"><a href=\"javascript:window.opener.show_calendar('"
    		+str_target+"', '"+dt2dtstr(dt_next_month)+"'+document.cal.time.value);\">"+
    		"<img src=\"779 next.gif\" width=\"16\" height=\"16\" border=\"0\""+
    		" alt=\"next month\"></a></td>\n</tr>\n"
    	);
    
    	var dt_current_day = new Date(dt_firstday);
    	// print weekdays titles
    	str_buffer += "<tr>\n";
    	for (var n=0; n<7; n++)
    		str_buffer += "	<td bgcolor=\"#87CEFA\">"+
    		"<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"+
    		week_days[(n_weekstart+n)%7]+"</font></td>\n";
    	// print calendar table
    	str_buffer += "</tr>\n";
    	while (dt_current_day.getMonth() == dt_datetime.getMonth() ||
    		dt_current_day.getMonth() == dt_firstday.getMonth()) {
    		// print row heder
    		str_buffer += "<tr>\n";
    		for (var n_current_wday=0; n_current_wday<7; n_current_wday++) {
    				if (dt_current_day.getDate() == dt_datetime.getDate() &&
    					dt_current_day.getMonth() == dt_datetime.getMonth())
    					// print current date
    					str_buffer += "	<td bgcolor=\"#FFB6C1\" align=\"right\">";
    				else if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6)
    					// weekend days
    					str_buffer += "	<td bgcolor=\"#DBEAF5\" align=\"right\">";
    				else
    					// print working days of current month
    					str_buffer += "	<td bgcolor=\"white\" align=\"right\">";
    
    				if (dt_current_day.getMonth() == dt_datetime.getMonth())
    					// print days of current month
    					str_buffer += "<a href=\"javascript:window.opener."+str_target+
    					".value='"+dt2dtstr(dt_current_day)+"'+document.cal.time.value; window.close();\">"+
    					"<font color=\"black\" face=\"tahoma, verdana\" size=\"2\">";
    				else
    					// print days of other months
    					str_buffer += "<a href=\"javascript:window.opener."+str_target+
    					".value='"+dt2dtstr(dt_current_day)+"'+document.cal.time.value; window.close();\">"+
    					"<font color=\"gray\" face=\"tahoma, verdana\" size=\"2\">";
    				str_buffer += dt_current_day.getDate()+"</font></a></td>\n";
    				dt_current_day.setDate(dt_current_day.getDate()+1);
    		}
    		// print row footer
    		str_buffer += "</tr>\n";
    	}
    	// print calendar footer
    	str_buffer +=
    		"<form name=\"cal\">\n<tr><td colspan=\"7\" bgcolor=\"#87CEFA\">"+
    		"<font color=\"White\" face=\"tahoma, verdana\" size=\"2\">"+
    		"Time: <input type=\"text\" name=\"time\" value=\""+dt2tmstr(dt_datetime)+
    		"\" size=\"8\" maxlength=\"8\"></font></td></tr>\n</form>\n" +
    		"</table>\n" +
    		"</tr>\n</td>\n</table>\n" +
    		"</body>\n" +
    		"</html>\n";
    
    	var vWinCal = window.open("", "Calendar",
    		"width=200,height=250,status=no,resizable=yes,top=200,left=200");
    	vWinCal.opener = self;
    	var calc_doc = vWinCal.document;
    	calc_doc.write (str_buffer);
    	calc_doc.close();
    }
    
    
    
    
    
    function str2dt (str_datetime) {
    	var re_date = /^(\d+)\-(\d+)\-(\d+)\s+(\d+)\:(\d+)\:(\d+)$/;
    	if (!re_date.exec(str_datetime))
    		return alert("Invalid Datetime format: "+ str_datetime);
    	return (new Date (RegExp.$3, RegExp.$2-1, RegExp.$1, RegExp.$4, RegExp.$5, RegExp.$6));
    }
    function dt2dtstr (dt_datetime) {
    	return (new String (
    			dt_datetime.getDate()+"-"+(dt_datetime.getMonth()+1)+"-"+dt_datetime.getFullYear()+" "));
    }
    function dt2tmstr (dt_datetime) {
    	return (new String (
    			dt_datetime.getHours()+":"+dt_datetime.getMinutes()+":"+dt_datetime.getSeconds()));
    }
    
    
    </script>
    
    
    </HEAD>
    
    <BODY>
    
    
    <form name="formData">
    
    
    Data iniziale: <input type="Text" name="data1" value="" size="20">
    <a href="javascript:show_calendar('document.formData.data1', document.formData.data1.value);">
    [img]779 cal.gif[/img]</a></p>
    
    
    Data finale: <input type="Text" name="data2" value="" size="20">
    <a href="javascript:show_calendar('document.formData.data2', document.formData.data2.value);">
    [img]779 cal.gif[/img]</a></p>
    </form>
    
    
    
    </BODY>
    </HTML>
    se non è possibile togliere solo i secondi, possiamo togliere anche la funzione che recupera il valore scritto nella textare...tanto non mi serve

    grazie mille

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    909
    ho trovato un'altro calendario popup in Italiano che ho personalizzato, ho solou piccolo problema:

    in pratica ho "2" campi di testo "Partenza" e "arrivo" solo che non so come richiamarmi i
    calendari senza creare casini

    il codice:
    codice:
    #l'html
    
     <script language="JavaScript">
    document.write('<script language="JavaScript" src="datax.js"></sc' + 'ript>');
        </script>
    
    </head>
    
    <body bgcolor="#FFFFFF">
    <script language="JavaScript">
    	var source;
    	var tipo;
    	var campi = new Array();
    
    	function cal(val, e, t) {
    		var dt = new Array();
    		xPos = (document.layers) ? e.pageX : ((document.all) ? event.x : e.clientX);
    		yPos = (document.layers) ? e.pageY : ((document.all) ? event.y : e.clientY);
    
    		tipo = t;
    		source = val;
    		if (t == 0) {
    			dt[0] = val[0].value;
    			dt[1] = val[1].value;
    			dt[2] = val[2].value;
    		}
    		else
    			dt = val.value.split('-');
    
    		showCalendar(new Date(), xPos, yPos);
    	}
    </script>
    
    <form name="myform" >
      <table width="10%" border="0" cellspacing="0" cellpadding="4" align="center">
        <tr> 
          
    
          <td align="right" nowrap><font size="2" face="Arial, Helvetica, sans-serif">Data 
            intermedia:</font></td>
          <td> 
            <input type="text" name="datacompleta" size="12" value="18-09-2002"><input type="image" src="cal.gif" name="go2" onMouseOver="cal(datacompleta, event, 1)" width="16" height="16">
          </td>
        </tr>
        
      </table>
      
    
    </form>
    
    # fine html
    il file .js
    codice:
    var xwidth = 220;
    var xheight = 180;
    var browser = document.layers ? 0 : document.all ? 1 : 2;
    
    
    // colori
    var backtable = '#90C0FF';
    var calendback = '#DDDDBB';
    var lines = '#404040';
    var bright = '#000000';
    var festa = '#FD9139';
    
    // ------ Non cambiare ----------
    var mesi = new Array('Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno',
                   'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre');
    
    var days = new Array('Lu', 'Ma', 'Me', 'Gi', 'Ve', 'Sa', 'Do');
    var dd = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    
    var today = new Date();
    var anno = today.getFullYear();
    var mese = today.getMonth();
    var currday = today.getDate();
    var cellwidth = Math.floor(xwidth / 7);
    xwidth = cellwidth * 7;
    var xmese = 0;
    var aboutx = false;
    var isOn = false;
    
    
    function action(g, m , a) {
       function format(x) {
          return x > 9 ? x : "0" + x;
       }
       getId().showIt(false);
    
       if (tipo == 0) {
          source[0].value = format(g);
          source[1].value = format(m + 1);
          source[2].value = a;
       }
       else
          source.value = format(g) + '-' + format(m + 1) + '-' + a;
    }
    
    document.write('<style type="text/css">\n<!--');
    document.write('.cal { font-family: Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold; color: #000099}');
    document.write('.num { font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-decoration:none}');
    document.write('.mese {  font-family: Arial, Helvetica, sans-serif; font-size: 14px; font-weight: bold; color: #663300}');
    document.write('.butt {  font-family: Arial, Helvetica, sans-serif; font-size: 10px}');
    document.write('-->\n</style>');
    
    
    function comparedate(d1, d2) {
       if (d1.getFullYear() == d2.getFullYear() && d1.getMonth() == d2.getMonth() && d1.getDate() == d2.getDate()) 
          return true;
       return false;
    }
    
    function pasqua(aa) {
       var xx = new Array(22, 22, 23, 23, 24, 24);
       var yy = new Array(2, 2, 3, 4, 5, 5);
       var a = aa % 19;
       var b = aa % 4;
       var c = aa % 7;
    
       var i = Math.floor(aa / 100) - 15;
       var x = xx[i], y = yy[i];
       var d = (19*a + x) % 30;
       var e = (2*b + 4*c + 6 * d + y) % 7;
    
       var p = 22 + d + e;
    
       var m = 300;
       if (p > 31) {
          m = 400;
          p = p - 31;
       }
       return m + p;
    }
    
    
    function isfesta(d) {
       var feste = new Array(0, 101, 106, 425, 501, 602, 815, 1101, 1208, 1225, 1226);
    
       if (d.getDay() == 0)
          return true;
    
       var pp = pasqua(d.getFullYear()) + 1;     // Pasquetta
          if (pp % 100 > 31)
             pp = 401;
    
       feste[0] = pp;
       for (var i = 0; i < feste.length; i++)
          if (Math.floor(feste[i] / 100) == d.getMonth() + 1) {
             var gg = feste[i] % 100;
             if (gg == d.getDate())
                return true;
          }
    
       return false;
    }
    
    
    function calendar(currday, mese, anno) {
    
       var dx = 2 - (new Date(anno, mese, 1)).getDay();
       if (dx == 2)
          dx = -5;
       var daysInMonth = dd[mese];
    
       if (mese == 1) {
          if (anno % 4 == 0 && anno % 100 != 0  || anno % 400 == 0)
             daysInMonth++
       }
    
       var tx = '<div class="mese">' + mesi[mese] + ' ' + anno +'</div>\n';
       tx += '<table width="' + xwidth + '" border="0" cellspacing="1" cellpadding="1">\n';
       tx += '<tr align="right">\n';
    
       for (var i = 0; i < 7; i++)
          tx += '<td width="' + cellwidth+ '" class="cal">' + days[i] + '</td>\n';
    
       tx += '</tr>\n';
       for (var j = 0; j < 6; j++) {
          tx += '<tr bgcolor="' + calendback + '" align="right">\n';
          for (var i = 0; i < 7; i++) {
             var bgstring = "";
             var fgcol = lines;
             var fgstring = '';
    
             if (dx > 0 && dx <= daysInMonth) {
                fgstring = dx;
                var ddx = new Date(anno, mese, dx);
                if (isfesta(ddx)) {
                   bgstring = ' bgcolor="' + festa + '"';
                }
                if (comparedate(ddx, today)) {
                   fgcol = bright;
                   fgstring = '<u>' + dx + '</u>\n';
                }
                var tempdate = ddx.getDate() + ", " + ddx.getMonth() + ", " + ddx.getFullYear();
                fgstring = '<font color="' + fgcol + '">' + fgstring + '</font>\n';
             }
             tx += '<td width="' + cellwidth + '" class="num"' + bgstring + '>\n';
             tx += fgstring;
             tx += '</td>\n';
             dx++;
          }
          tx += '</tr>\n';
       }
       tx += '</table>\n';
    
       return tx;
    }
    
    
    function dataframe(x) {
       var s = '<table width="' + xwidth + '" border="1" cellspacing="0" cellpadding="0" bgcolor="' + backtable + '">';
       s += '<tr>\n<td class="mese" valign="middle">';
    
       s += x; // calendar(currday, mese, anno);
       
       s += '</td></tr><tr><td>';
       s += '<form class="butt"><table width="100%" border="0" cellspacing="0" cellpadding="2">';
       s += '<tr>';
        s += '<td align="left"><input type="button" name="close" value=" Chiudi " class="butt" onclick="showCalendar()">';
       s += '<td align="right"><input type="button" name="prev" value=" - " class="butt" onclick="altro_mese(-1)">';
       s += '<input type="button" name="current" value="Default" class="butt" onclick="altro_mese(9)">';
       s += '<input type="button" name="next" value=" + " class="butt" onclick="altro_mese(1)"></td>';
       s += '</tr></form></table>';
    
       s += '</td>\n</tr>\n</table>';
       return s;
    }
    
    
    function altro_mese(x) {
       xmese += x;
       if (x == 9)
          xmese = 0;
       var xday = (xmese == 0)? currday : 99;
       var mm = (mese + xmese) % 12;
    
       while (mm < 0)
          mm += 12;
    
       var s = dataframe(calendar(xday, mm, anno + Math.floor((mese + xmese) / 12)));
       writeLayer(s);
       aboutx = false;
    }
    
    
    
    
    function getId() {
       switch (browser) {
          case 0:
             return document.layers.calframe;
          case 1:
             return eval('calframe');
          case 2:
             return document.getElementById("calframe");
       }
    }
    
    
    function moveLayer(xPos, yPos) {
       switch (browser) {
       case 0:
          this.left = xPos;
          this.top = yPos;
          break;
       case 1:
          this.style.pixelLeft = xPos;
          this.style.pixelTop = yPos;
         break;
       default:
          this.style.left = xPos;
          this.style.top = yPos;
       }
    }
    
    
    function createlayer() {
       var s;
       if (document.layers)
          s = '<layer id="calframe" visibility="hide" z-index=1>';
       else
          s = '<div id="calframe" style="position:absolute; visibility: hidden">';
       if (document.layers)
          s += '</layer>';
       else
          s += '</div>';
    
       document.writeln(s);
    }
    
    
    function showIt(on) {
       isOn = on;
       if (browser)
          this.style.visibility = (on) ? "visible" : "hidden";
       else
          this.visibility = (on) ? "show" : "hide"
    }
    
    
    function writeLayer(s) {
       var id = getId();
       if (browser)
          id.innerHTML = s;
       else {
          id.document.open();
          id.document.write(s);
          id.document.close();
       }
    }
    
    function init() {
       var id = getId();
       id.moveLayer = moveLayer;
       id.showIt = showIt;
       id.showIt(false);
    }
    
    
    function showCalendar(d, xpos, ypos) {
       if (!isOn) {
               
          if (d) {
                anno = d.getFullYear();
                mese = d.getMonth();
                currday = d.getDate();
             } else {
                anno = today.getFullYear();
                mese = today.getMonth();
                currday = today.getDate();
          }
          if (arguments.length > 2) {
             var id = getId();
             id.moveLayer(xpos, ypos);
          }
          else
             getId().moveLayer(100, 100);
    
          xmese = 0;
    
          writeLayer(dataframe(calendar(currday, mese, anno)));
          
       }
       getId().showIt(!isOn);
    }
    
    
    
    createlayer(1);
    onload = init;
    grazie mille, spero possiate aiutarmi
    .in pratica si tratterebbe di richiamare cn il secondo campo di testo "datacompleta" un nuovo js o una nuova funziona, ho provato ma o mi da errore o, il secondo calendario mi va a riempire sempre il primo campo di testo...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    909
    up pls

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.