Visualizzazione dei risultati da 1 a 3 su 3

Discussione: date javascript

  1. #1

    date javascript

    Ciao a tutti. Stavo lavorando ad un progetto e mi sono imbatutto in un errore che non capisco.
    Il programma deve prendere in input una data iniziale (uso il datepicker di jquery) nel formato dd/mm/yyyy e un numero di giorni sommare questi giorni alla data e restituirmi una data finale, niente di complicato...solo che arrivando al 31/10/2010 se gli sommo 1 rimane fermo al 31/10/2010 e di conseguenza mi sballa tutte le altre date di uno....non capisco onestamente dove possa essere sbagliato il codice javascript.

    ecco il codice html/php:
    codice:
    <html>
    <?php
    	$today = date("d/m/Y");
    ?>
    <head>
    	<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
    	<script type="text/javascript" src="js/script.js"></script>
    	<script type="text/javascript" src="js/jquery-ui-1.8.5.custom.min.js"></script>
    	
    	<link type="text/css" href="css/jquery-ui-1.8.5.custom.css" rel="stylesheet" />
    	
    	<script type="text/javascript">
    	<!--
    		$(document).ready(function(){
    			$('.datepicker').datepicker({
    				dateFormat: 'dd/mm/yy',
    // 				showOn: "button",
    // 				buttonImage: "css/images/calendar.gif",
    // 				buttonImageOnly: true
    
    			});
    		});
    	-->
    	</script>
    	
    	<title>Calcolo data</title>
    </head>
    
    <body>
    	<form name="form1">
    		
    
    <input type="text" name="inception" class="datepicker" value="<?php echo $today; ?>" />
    		<input type="text" name="num_days" size="5" onchange="calcolaData(this.value);" /></p>
    		
    		
    
    <input type="text" name="expiration" /></p>
    	</form>
    </body>
    
    </html>
    e la funzione javascript:
    codice:
    function calcolaData(days){
        
        var dataStart = document.form1.inception.value.split("/");
    	
        var inception = new Date(dataStart[2], (dataStart[1]-1), dataStart[0]);
        var dataEnd = addDays(inception, days);
        
        alert(dataEnd);
        
        if(dataEnd.getDate() < 10){
    	    var dayEnd = "0"+dataEnd.getDate();
    	}
    	else{
        	var dayEnd = dataEnd.getDate();
    	}
    	if((dataEnd.getMonth()+1) < 10){
    	    var monthEnd = "0"+(dataEnd.getMonth()+1);
    	}
    	else{
        	var monthEnd = dataEnd.getMonth()+1;
    	}
        document.form1.expiration.value = dayEnd + "/" + monthEnd + "/" + dataEnd.getFullYear();
    }
    
    function addDays(data, giorni){
        return new Date(data.getTime() + giorni*86400000)
    }

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Per settare una data usa i metodi data.setDate(n) e data.setMonth(n) eventualmente nella loro forma additiva:

    data.setMonth(data.getMonth()+n);

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Originariamente inviato da br1
    Per settare una data usa i metodi data.setDate(n) e data.setMonth(n) eventualmente nella loro forma additiva:

    data.setMonth(data.getMonth()+n);

    ciao
    Ciao, grazie mille, adesso funziona... ...grazia ancora!!!

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.