Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[JS] Datum berekenen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik ben bezig met onderstaand script,
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<html>
<head>
<script type="text/javascript">
var looptijd = 24;
function berdatum(invoer)
{
var nu = new Date(<?php echo date("Y"); ?>,<?php echo (date("n") - 1); ?>,<?php echo date("j"); ?>);
var nu_mi = nu.getTime()
var tijd = nu_mi + (looptijd*2635200000) - 7905600000 + 86400000;
var datum = new Date(tijd);
}
</script>
</head>
<body>
<label>Contractsduur:</label><select name="provider" id="helemaal" onClick="berdatum('24')">
<option value="12">12 maanden</option>
<option value="18">18 maanden</option>
<option value="24">24 maanden</option>
<option value="36">36 maanden</option>
</select>
<br />
<label>Ingang abonnement:</label></td><td width="250"><input type="text" name="ab_dag" class="text" maxlength="2" id="GD" value="<?php echo date("j"); ?>"> <input type="text" class="text" name="ab_maand" id="GD"  maxlength="2" value="<?php echo date("n"); ?>"> <input type="text" class="text" name="ab_jaar" id="GD"  maxlength="4" value="<?php echo date("Y"); ?>">
<br />
<label>Eind abonnement:</label><input type="text" name="ei_dag" class="text" maxlength="2" id="GD" value="DAG"> <input type="text" class="text" name="ei_maand" id="GD"  maxlength="2" value="MAAND"> <input type="text" class="text" name="ei_jaar" id="GD" maxlength="4" value="JAAR">
</body>
</html>


het doel is dat ik bij Ingang Abbonnement een datum invul
en dat er dan bij Eind Abbonnement de datum komt de te staan
die als volgt word berkend

datum ingang + looptijd - 3 maanden + 1 dag
waarbij de looptijd word gekozen bij Contractsduur.

Via Google kom ik wel een beetje verder, maar het is net niet genoeg.

Misschien kunnen jullie mij helpen

Hendrik Grunstra ;-)

  • DanielG
  • Registratie: Oktober 2005
  • Laatst online: 08-09 15:36

DanielG

i = 0x5f3759df - (i>>1); ☠₧ℳ🀪❣

JavaScript Date() Method

Definition and Usage

The Date() method returns today's date and time.

Syntax

Date()

Example

In this example we will print today's date and time:

<script type="text/javascript">

document.write(Date());

</script>

The output of the code above will be:

Wed Apr 23 2008 19:23:40 GMT+0200 (CEST)
Volgens mij gebruik je de functie Date van javascript verkeerd.

http://xyproblem.info/


Verwijderd

Topicstarter
aha

ik heb nu dit
code:
1
2
3
var nu = new Date(<?php echo date("Y"); ?>,<?php echo (date("n") - 1); ?>,<?php echo date("j"); ?>);
nu.setMonth()+(looptijd-3);
nu.setDate()-1


en ik print het op deze manier:
code:
1
2
3
document.write(nu.getDate() + "<br>");
document.write(nu.getMonth() + "<br>");
document.write(nu.getFullYear() + "<br>");

  • dtech
  • Registratie: Juni 2005
  • Laatst online: 19-09 15:37
Gebruik de JS functie date goed. En PHP is nergens voor nodig. JS kan prima zelf de datum bepalen
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<html>
<head>
<script type="text/javascript">
var duration = 24; // Default  duration time in months
var startDate = new Date();
var endDate = new Date();
    endDate.setFullYear(startDate.getYear(), getDate.startMonth()+defDuration, startDate.getDay()); // Yes, this also works on month 13
function setEndDate()
{
    endDate.setFullYear(startDate.getYear(), startDate.getMonth()+duration, startDate.getDay())); // Yes, this also works on month 13
}
function setStartDate()
{
    curDate.setFullYear(endDate.getYear(), endDate.getMonth()-duration, endDate.getDay())); // Yes, this also works on month 13
}
function error()
{
    alert("Ongeldige waarde");
}
</script>
</head>
<body>
<label>Contractsduur:</label><select name="provider" id="helemaal" onClick="duration=this.value;setEndDate()">
<option value="12">12 maanden</option>
<option value="18">18 maanden</option>
<option value="24">24 maanden</option>
<option value="36">36 maanden</option>
</select>
<br />
<label>Ingang abonnement:</label>
<input type="text" maxlength="2" onchange="if(isNaN(this.value)){error();return false};startDate.setDate(this.value);setEndDate();" id="start_day" name="start_day" />-
<input type="text" maxlength="2" onchange="if(isNaN(this.value)){error();return false};startDate.setMonth(this.value);setEndDate();" id="start_month" name="start_month" />-
<input type="text" maxlength="4" onchange="if(isNaN(this.value)){error();return false};startDate.setYear(this.value);setEndDate();" id="start_year" name="start_year" />
<br />
<label>Eind abonnement:</label>
<input type="text" maxlength="2" onchange="if(isNaN(this.value)){error();return false};endDate.setDate(this.value);setStartDate();" id="end_day" name="end_day" />-
<input type="text" maxlength="2" onchange="if(isNaN(this.value)){error();return false};endDate.setMonth(this.value);setStartDate();" id="end_month" name="end_month" />-
<input type="text" maxlength="4" onchange="if(isNaN(this.value)){error();return false};endDate.setYear(this.value);setStartDate();" id="end_year" name="end_year" />
</body>
</html>

Verwijderd

dtech schreef op woensdag 23 april 2008 @ 21:28:
Gebruik de JS functie date goed. En PHP is nergens voor nodig. JS kan prima zelf de datum bepalen
[code]
En wat als de client nou niet goed z'n tijd/datum heeft ingesteld?

  • reddevil
  • Registratie: Februari 2001
  • Laatst online: 06-10 14:25
Verwijderd schreef op donderdag 24 april 2008 @ 10:08:
[...]

En wat als de client nou niet goed z'n tijd/datum heeft ingesteld?
Mag je dan verwachten dat hij een goede datum verwacht? :)

Verwijderd

Topicstarter
dtech schreef op woensdag 23 april 2008 @ 21:28:
Gebruik de JS functie date goed. En PHP is nergens voor nodig. JS kan prima zelf de datum bepalen
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<html>
<head>
<script type="text/javascript">
var duration = 24; // Default  duration time in months
var startDate = new Date();
var endDate = new Date();
    endDate.setFullYear(startDate.getYear(), getDate.startMonth()+defDuration, startDate.getDay()); // Yes, this also works on month 13
function setEndDate()
{
    endDate.setFullYear(startDate.getYear(), startDate.getMonth()+duration, startDate.getDay())); // Yes, this also works on month 13
}
function setStartDate()
{
    curDate.setFullYear(endDate.getYear(), endDate.getMonth()-duration, endDate.getDay())); // Yes, this also works on month 13
}
function error()
{
    alert("Ongeldige waarde");
}
</script>
</head>
<body>
<label>Contractsduur:</label><select name="provider" id="helemaal" onClick="duration=this.value;setEndDate()">
<option value="12">12 maanden</option>
<option value="18">18 maanden</option>
<option value="24">24 maanden</option>
<option value="36">36 maanden</option>
</select>
<br />
<label>Ingang abonnement:</label>
<input type="text" maxlength="2" onchange="if(isNaN(this.value)){error();return false};startDate.setDate(this.value);setEndDate();" id="start_day" name="start_day" />-
<input type="text" maxlength="2" onchange="if(isNaN(this.value)){error();return false};startDate.setMonth(this.value);setEndDate();" id="start_month" name="start_month" />-
<input type="text" maxlength="4" onchange="if(isNaN(this.value)){error();return false};startDate.setYear(this.value);setEndDate();" id="start_year" name="start_year" />
<br />
<label>Eind abonnement:</label>
<input type="text" maxlength="2" onchange="if(isNaN(this.value)){error();return false};endDate.setDate(this.value);setStartDate();" id="end_day" name="end_day" />-
<input type="text" maxlength="2" onchange="if(isNaN(this.value)){error();return false};endDate.setMonth(this.value);setStartDate();" id="end_month" name="end_month" />-
<input type="text" maxlength="4" onchange="if(isNaN(this.value)){error();return false};endDate.setYear(this.value);setStartDate();" id="end_year" name="end_year" />
</body>
</html>
Harstikke mooi script alleen werkt het bij mijn niet

Hoe zou ik die eind datum kunnen laten invullen in de <input> velden

ik heb dit er nu van gebrouwen maar het werkt nog steeds niet :P :P
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<html>
<head>
<script type="text/javascript">
var duration = 24; // Default  duration time in months
var startDate = new Date();
var endDate = new Date();
    endDate.setFullYear(startDate.getYear(), getDate.startMonth()+duration, startDate.getDay()+1); // Yes, this also works on month 13
    
    document.getElementById(start_day).value = startDate.getDate();
    document.getElementById(start_month).value = startDate.getMonth();
    document.getElementById(start_year).value = startDate.getYear();
    
    document.getElementById(end_day).value = endDate.getDate();
    document.getElementById(end_month).value = endDate.getMonth();
    document.getElementById(end_year).value = endDate.getYear();
    
function setEndDate()
{
    endDate.setFullYear(startDate.getYear(), startDate.getMonth()+duration, startDate.getDay())); // Yes, this also works on month 13
}
function setStartDate()
{
    startDate.setFullYear(endDate.getYear(), endDate.getMonth()-duration, endDate.getDay())); // Yes, this also works on month 13
}
function error()
{
    alert("Ongeldige waarde");
}
</script>
</head>
<body onLoad="setEndDate();setStartDate();">
<script type="text/javascript">
document.write(startDate.getDate());
document.write(endDate);
</script>
<label>Contractsduur:</label><select name="provider" id="helemaal" onClick="duration=this.value;setEndDate()">
<option value="12">12 maanden</option>
<option value="18">18 maanden</option>
<option value="24">24 maanden</option>
<option value="36">36 maanden</option>
</select>
<br />
<label>Ingang abonnement:</label>
<input type="text" maxlength="2" onChange="if(isNaN(this.value)){error();return false};startDate.setDate(this.value);setEndDate();" id="start_day" name="start_day" value="<?php echo date("j"); ?>" />-
<input type="text" maxlength="2" onChange="if(isNaN(this.value)){error();return false};startDate.setMonth(this.value);setEndDate();" id="start_month" name="start_month" value="<?php echo date("n"); ?>" />-
<input type="text" maxlength="4" onChange="if(isNaN(this.value)){error();return false};startDate.setYear(this.value);setEndDate();" id="start_year" name="start_year" value="<?php echo date("Y"); ?>"/>
<br />
<label>Eind abonnement:</label>
<input type="text" maxlength="2" onChange="if(isNaN(this.value)){error();return false};endDate.setDate(this.value);setStartDate();" id="end_day" name="end_day" />-
<input type="text" maxlength="2" onChange="if(isNaN(this.value)){error();return false};endDate.setMonth(this.value);setStartDate();" id="end_month" name="end_month" />-
<input type="text" maxlength="4" onChange="if(isNaN(this.value)){error();return false};endDate.setYear(this.value);setStartDate();" id="end_year" name="end_year" />
</body>
</html>


ik snap niet waar het probleem zit :|

[ Voor 37% gewijzigd door Verwijderd op 24-04-2008 12:16 ]


Verwijderd

Ik denk dat DateJs je heel veel werk uit handen neemt bij het maken van zoiets: http://www.datejs.com

  • dtech
  • Registratie: Juni 2005
  • Laatst online: 19-09 15:37
Ik ben vergeten de functies de velden te laten aanpassen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function setEndDate()
{
    endDate.setFullYear(startDate.getYear(), startDate.getMonth()+duration, startDate.getDay())); // Yes, this also works on month 13
    this.document.getElementById('end_day').value = enddate.getDate();
    this.document.getElementById('end_month').value = enddate.getMonth();
    this.document.getElementById('end_year').value = enddate.getYear();
}
function setStartDate()
{
    curDate.setFullYear(endDate.getYear(), endDate.getMonth()-duration, endDate.getDay())); // Yes, this also works on month 13
    this.document.getElementById('start_day').value = curdate.getDate();
    this.document.getElementById('start_month').value = curdate.getMonth();
    this.document.getElementById('start_year').value = curdate.getYear();
}

  • dtech
  • Registratie: Juni 2005
  • Laatst online: 19-09 15:37
Verwijderd schreef op donderdag 24 april 2008 @ 10:08:
[...]

En wat als de client nou niet goed z'n tijd/datum heeft ingesteld?
Dan past hij hem even aan... (in het formulier)

[ Voor 4% gewijzigd door dtech op 24-04-2008 13:55 ]


Verwijderd

Topicstarter
HET IS GELUKT DUS SLOTJE

Voor de mensen die zich afvragen hoe ik het opgelost heb (of om van te leren)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<html>
<head>
<script type='text/javascript' src='includes/date-nl-NL.js'></script>
<script type="text/javascript">
var duration = 12 // Default  duration time in months
var startDate = new Date();
var endDate = new Date();
var change = 1;
var change_V = 1;
function setDuration(invoer)
{
duration = (invoer - 3);
//duration = 24
setEndDate();
setStartDate();
}
function setEndDate()
{
    endDate = new Date(this.document.getElementById('start_year').value,(this.document.getElementById('start_month').value -1),this.document.getElementById('start_day').value).add({ months: duration, days: -1 });

    this.document.getElementById('end_day').value = endDate.getDate();
    this.document.getElementById('end_month').value = (endDate.getMonth()+1);
    this.document.getElementById('end_year').value = endDate.getFullYear();
}
function setStartDate()
{
    startDate = new Date(this.document.getElementById('end_year').value,(this.document.getElementById('end_month').value -1),this.document.getElementById('end_day').value).add({ months: -duration, days: 1 });
    this.document.getElementById('start_day').value = startDate.getDate();
    this.document.getElementById('start_month').value = (startDate.getMonth()+1);
    this.document.getElementById('start_year').value = startDate.getFullYear();
}
function error()
{
    alert("Ongeldige waarde");
}
</script>
</head>
<body onLoad="setStartDate();setEndDate()">
<script type="text/javascript">
document.write(duration + "<br>");
document.write(change + "<br>");
</script>
<label>Contractsduur:</label><select name="provider" id="contract" onChange="setDuration(this.value)">
<option value="12">12 maanden</option>
<option value="18">18 maanden</option>
<option value="24">24 maanden</option>
<option value="36">36 maanden</option>
</select>
<br />
<label>Ingang abonnement:</label>
<input type="text" maxlength="2" onChange="startDate.setDate(this.value);setEndDate();" id="start_day" name="start_day" value="<?php echo date("j"); ?>" />-
<input type="text" maxlength="2" onChange="startDate.setMonth(this.value);setEndDate();" id="start_month" name="start_month" value="<?php echo date("n"); ?>" />-
<input type="text" maxlength="4" onChange="startDate.setYear(this.value);setEndDate();" id="start_year" name="start_year" value="<?php echo date("Y"); ?>"/>
<br />
<label>Eind abonnement:</label>
<input type="text" maxlength="2" onChange="endDate.setDate(this.value);setStartDate();" id="end_day" name="end_day" />-
<input type="text" maxlength="2" onChange="endDate.setMonth(this.value);setStartDate();" id="end_month" name="end_month" />-
<input type="text" maxlength="4" onChange="endDate.setYear(this.value);setStartDate();" id="end_year" name="end_year" />
</body>
</html>
Pagina: 1