webForumDet fria alternativet

Räkna om datum med onChange i ett formulär

JavaScript

2 svar · 278 visningar · startad av peppar

Medlem sedan dec. 2001873 inlägg
Frågan#1

Jag skulle vilja få en select list att räkna om värdet (ett datum) med

onChange

i ett textfield då naturligtvis beroende på vad som är valt i listen. Men Javascript formateringen av datum är inte det lättaste att begripa. Datumet i textfielden är formaterat med ASP såhär:

yyyy-mm-dd tt:mm:ss

... såhär.

<input name="prdStart" type="hidden" value="2007-08-01 20:20:20">
<input name="prdStartdatum" size="30">
<select name="prdNyttslut" id="nyttslut" onchange="this.form.prdStartdatum.value=this.form.prdStart.value+this.form.prdNyttslut.value;" size="1">
        <option value="1">1</option>
        <option value="2">2</option>
</select>
Medlem sedan dec. 20025 483 inlägg
#2
<script type="text/javascript">

function alz(n){
    return n < 10 ? '0' + n : n;
}

function f(obj){
    var v = obj.form.elements["prdStart"].value.match(/(\d+)\-(\d+)\-(\d+)\s(\d+):(\d+):(\d+)/);

    if (v.length == 7){
	var dstr = new Date(v[1], v[2] - 1, v[3], v[4], v[5], v[6]);

	dstr.setDate(dstr.getDate() + parseInt(obj.options[obj.selectedIndex].value));

	var nv = dstr.getFullYear() + "-" + 
			alz(dstr.getMonth() + 1) + "-" + 
			alz(dstr.getDate()) + " " + 
			alz(dstr.getHours()) + ":" + 
			alz(dstr.getMinutes()) + ":" + 
			alz(dstr.getSeconds());

	obj.form.elements["prdStartdatum"].value = nv;
    }
}

</script>

<select onchange="f(this)"...
Medlem sedan dec. 2001873 inlägg
#3

Jösses, det var inte en handvändning det där inte... Tack :)

248 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)