Vraag over begroeting
Ik zie tussen de PHP Scripts staan begroeting met tijd, nu heb ik een idee in mijn in mijn hoofd maar weet niet precies hoe te programmeren met PHP of Javascript.
Hier mijn idee, als je bijvoorbeeld met een webshop werkt:
(Als voorbeeld pakken we dat het vandaag dinsdag is en het is 13:00 uur)
Het script moet dan automatisch naar de dag en tijd kijken en zeggen voor 15:00 besteld is morgen in huis.
zodra het 15:00 uur is geweest moet het script zeggen Nu bestellen is donderdag in huis enz...
bestellen mensen op vrijdag na 15:00 moet er staan dinsdag in huis
Is dit mogelijk? en zoja hoe? Zelf kom ik er niet uit :$
Groetjes,
Yoeri
javascript werkt met datum en tijd van het systeem, indien deze fout zijn ingesteld dan zal dat op de site ook verkeert worden weergegeven.
Ik zou in ieder geval naar PHP kijken.
Als je met php werkt, hoe kan ik dit dan realiseren en programmeren?
Hoe sla je de datum op, in welk formaat?
Code (php)
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
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
<?php
// Tijdzone voor Nederland
date_default_timezone_set('Europe/Amsterdam');
// Dag van de week: 0 (zondag) t/m 6 (zaterdag)
$weekdag = (int) date('w');
if (($weekdag == 0) || ($weekdag == 6)) {
// PostNL bezorgt pakketten op dinsdag t/m zaterdag.
// @link https://www.postnl.nl/voorthuis/pakket-versturen/postbezorging/
$bezorging = 'Vandaag besteld, dinsdag bezorgd.';
} else {
// Uur van de dag: 0 t/m 23 zonder voorloopnullen
$uur = (int) date('G');
if ($uur < 15) {
$bezorging = 'Vandaag voor 15:00 uur besteld, morgen al in huis.';
} else {
if ($weekdag == 5) {
// Vrijdag heeft de lastigste cut-off tijd: dat wordt ook pas dinsdag.
$bezorging = 'Vandaag na 15:00 uur besteld, dinsdag bezorgd.';
} else {
// Standaard cut-off tijd is drie uur 's middags.
$bezorging = 'Vandaag na 15:00 uur besteld, overmorgen in huis.';
}
}
}
?>
// Tijdzone voor Nederland
date_default_timezone_set('Europe/Amsterdam');
// Dag van de week: 0 (zondag) t/m 6 (zaterdag)
$weekdag = (int) date('w');
if (($weekdag == 0) || ($weekdag == 6)) {
// PostNL bezorgt pakketten op dinsdag t/m zaterdag.
// @link https://www.postnl.nl/voorthuis/pakket-versturen/postbezorging/
$bezorging = 'Vandaag besteld, dinsdag bezorgd.';
} else {
// Uur van de dag: 0 t/m 23 zonder voorloopnullen
$uur = (int) date('G');
if ($uur < 15) {
$bezorging = 'Vandaag voor 15:00 uur besteld, morgen al in huis.';
} else {
if ($weekdag == 5) {
// Vrijdag heeft de lastigste cut-off tijd: dat wordt ook pas dinsdag.
$bezorging = 'Vandaag na 15:00 uur besteld, dinsdag bezorgd.';
} else {
// Standaard cut-off tijd is drie uur 's middags.
$bezorging = 'Vandaag na 15:00 uur besteld, overmorgen in huis.';
}
}
}
?>
Gewijzigd op 15/03/2014 11:52:23 door Ward van der Put
Hartstikke bedankt voor dit stuk script! Nu moet ik dus alleen nog $bezorging laten echo-en waar ik het wil laten verschijnen?
Met vriendelijke groet,
Yoeri
Nu heb ik nog 2 vragen over dit script.
- Sinds vannacht 00:00 krijg ik een 500 error op de pagina.
Ik heb een klein schema gemaakt wat het script moet volgen, is het niet beter om dit met een switch te doen?:
if Maandag (weekdag 1)
Bij maandag mag hij de klok rond echo-en (Vandaag besteld = Woensdag thuis)
if Dinsdag (weekdag 2)
Zodra het dinsdag word 00:00
Moet hij echo-en (Voor 15:00 besteld = morgen in huis)
Na 15:00 (Bestel nu = donderdag in huis)
if Woensdag (weekdag 3)
Zodra het woensdag word 00:00
Moet hij echo-en (Voor 15:00 besteld = morgen in huis)
Na 15:00 (Bestel nu = vrijdag in huis)
if Donderdag (weekdag 4)
Zodra het donderdag word 00:00
Moet hij echo-en (Voor 15:00 besteld = morgen in huis)
Na 15:00 (Bestel nu = Zaterdag in huis)
if Vrijdag (weekdag 5)
Zodra het donderdag word 00:00
Moet hij echo-en (Voor 15:00 besteld = morgen in huis)
Na 15:00 (Vandaag besteld = Woensdag thuis)
if Zaterdag (weekdag 6)
de klok rond echo-en (Vandaag besteld = Woensdag thuis)
if Zondag (weekdag 0)
de klok rond echo-en (Vandaag besteld = Woensdag thuis)
Je kunt inderdaad ook een switch gebruiken. Combineer daarin dan wel meerdere cases tot één, want bijvoorbeeld maandag, zaterdag en zondag zijn nu exact hetzelfde (altijd vandaag besteld, woensdag in huis).
Code (php)
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
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
<?php
// Tijdzone voor Nederland
date_default_timezone_set('Europe/Amsterdam');
// Dag van de week: 0 (zondag) t/m 6 (zaterdag)
$weekdag = (int) date('w');
if (($weekdag == 0) || ($weekdag == 6)) {
// PostNL bezorgt pakketten op dinsdag t/m zaterdag.
// @link https://www.postnl.nl/voorthuis/pakket-versturen/postbezorging/
$bezorging = 'Vandaag besteld, dinsdag bezorgd.';
break;
} else {
// Uur van de dag: 0 t/m 23 zonder voorloopnullen
$uur = (int) date('G');
if ($uur < 15) {
$bezorging = 'Vandaag voor 15:00 uur besteld, morgen al in huis.';
} else {
if ($weekdag == 5) {
// Vrijdag heeft de lastigste cut-off tijd: dat wordt ook pas dinsdag.
$bezorging = 'Vandaag na 15:00 uur besteld, dinsdag bezorgd.';
} else {
// Standaard cut-off tijd is drie uur 's middags.
$bezorging = 'Vandaag na 15:00 uur besteld, overmorgen in huis.';
}
}
}
?>
// Tijdzone voor Nederland
date_default_timezone_set('Europe/Amsterdam');
// Dag van de week: 0 (zondag) t/m 6 (zaterdag)
$weekdag = (int) date('w');
if (($weekdag == 0) || ($weekdag == 6)) {
// PostNL bezorgt pakketten op dinsdag t/m zaterdag.
// @link https://www.postnl.nl/voorthuis/pakket-versturen/postbezorging/
$bezorging = 'Vandaag besteld, dinsdag bezorgd.';
break;
} else {
// Uur van de dag: 0 t/m 23 zonder voorloopnullen
$uur = (int) date('G');
if ($uur < 15) {
$bezorging = 'Vandaag voor 15:00 uur besteld, morgen al in huis.';
} else {
if ($weekdag == 5) {
// Vrijdag heeft de lastigste cut-off tijd: dat wordt ook pas dinsdag.
$bezorging = 'Vandaag na 15:00 uur besteld, dinsdag bezorgd.';
} else {
// Standaard cut-off tijd is drie uur 's middags.
$bezorging = 'Vandaag na 15:00 uur besteld, overmorgen in huis.';
}
}
}
?>
dit is wat ik in een .php bestand op de server heb staan.
Gisteren werkte het prima! tot vannacht 00:00 toen werd de pagina een 500 error.
Gr. yoeri
Je hebt een break in de eerste if gezet. En die triggerde vannacht, toen het zaterdag werd. Haal die break eruit.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$uur = (int) date('G');
$='sunday';
switch ($day) ($uur){
case 'monday':
if ($uur <15) {$shipstatus = 'Vandaag besteld = Woensdag in huis';
} else { $uur >15) {$shipstatus = 'Vandaag besteld = Donderdag in huis';
break;
case 'tuesday':
if ($uur <15) {$shipstatus = 'Vandaag besteld = Woensdag in huis';
} else { $uur >15) {$shipstatus = 'Vandaag besteld = vrijdag';
break;
?>
$uur = (int) date('G');
$='sunday';
switch ($day) ($uur){
case 'monday':
if ($uur <15) {$shipstatus = 'Vandaag besteld = Woensdag in huis';
} else { $uur >15) {$shipstatus = 'Vandaag besteld = Donderdag in huis';
break;
case 'tuesday':
if ($uur <15) {$shipstatus = 'Vandaag besteld = Woensdag in huis';
} else { $uur >15) {$shipstatus = 'Vandaag besteld = vrijdag';
break;
?>
Kan dat op zo en manier?
Yoeri Achterbergen op 15/03/2014 13:58:11:
Kan dat op zo en manier?
Heb je het zelf al getest??
Regel 3 zal niet goed gaan.
Code (php)
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
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
<?php
date_default_timezone_set('Europe/Amsterdam');
define('CUTOFFTIJD', 15);
$weekdag = (int) date('w');
$uur = (int) date('G');
switch ($weekdag) {
case 0: // zondag
case 1: // maandag
case 6: // zaterdag
$begroeting = 'Vandaag besteld, woensdag in huis';
break;
case 5: // vrijdag
if ($uur < CUTOFFTIJD) {
$begroeting = 'Vandaag besteld, zaterdag in huis';
} else {
$begroeting = 'Vandaag besteld, woensdag in huis';
}
break;
default: // dinsdag, woensdag en donderdag
if ($uur < CUTOFFTIJD) {
$begroeting = 'Vandaag besteld, morgen in huis';
} else {
$begroeting = 'Vandaag besteld, overmorgen in huis';
}
break;
}
echo $begroeting;
?>
[/oode]
date_default_timezone_set('Europe/Amsterdam');
define('CUTOFFTIJD', 15);
$weekdag = (int) date('w');
$uur = (int) date('G');
switch ($weekdag) {
case 0: // zondag
case 1: // maandag
case 6: // zaterdag
$begroeting = 'Vandaag besteld, woensdag in huis';
break;
case 5: // vrijdag
if ($uur < CUTOFFTIJD) {
$begroeting = 'Vandaag besteld, zaterdag in huis';
} else {
$begroeting = 'Vandaag besteld, woensdag in huis';
}
break;
default: // dinsdag, woensdag en donderdag
if ($uur < CUTOFFTIJD) {
$begroeting = 'Vandaag besteld, morgen in huis';
} else {
$begroeting = 'Vandaag besteld, overmorgen in huis';
}
break;
}
echo $begroeting;
?>
[/oode]
Gewijzigd op 15/03/2014 14:21:10 door Ward van der Put
Code (php)
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
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
<?php
date_default_timezone_set('Europe/Amsterdam');
define('CUTOFFTIJD', 15);
$weekdag = (int) date('w');
$uur = (int) date('G');
switch ($weekdag) {
case 6: // zaterdag
case 0: // zondag
case 1: // maandag
$shipstatus = 'Vandaag besteld = woensdag in huis(€5.95)!';
break;
case 2: // dinsdag
if ($uur < CUTOFFTIJD) {
$shipstatus = 'Vandaag voor 15:00 besteld = morgen in huis(€5.95)!';
} else {
$shipstatus = 'Vandaag besteld = donderdag in huis(€5.95)!';
}
break;
case 3: // woensdag
if ($uur < CUTOFFTIJD) {
$shipstatus = 'Vandaag voor 15:00 besteld = morgen in huis(€5.95)!';
} else {
$shipstatus = 'Vandaag besteld = vrijdag in huis(€5.95)!';
}
break;
case 4: // donderdag
if ($uur < CUTOFFTIJD) {
$shipstatus = 'Vandaag voor 15:00 besteld = morgen in huis(€5.95)!';
} else {
$shipstatus = 'Vandaag besteld = zaterdag in huis(€5.95)!';
}
break;
case 5: // vrijdag
if ($uur < CUTOFFTIJD) {
$shipstatus = 'Vandaag voor 15:00 besteld = morgen in huis(€5.95)!';
} else {
$shipstatus = 'Vandaag besteld = woensdag in huis(€5.95)!';
}
break;
}
?>
date_default_timezone_set('Europe/Amsterdam');
define('CUTOFFTIJD', 15);
$weekdag = (int) date('w');
$uur = (int) date('G');
switch ($weekdag) {
case 6: // zaterdag
case 0: // zondag
case 1: // maandag
$shipstatus = 'Vandaag besteld = woensdag in huis(€5.95)!';
break;
case 2: // dinsdag
if ($uur < CUTOFFTIJD) {
$shipstatus = 'Vandaag voor 15:00 besteld = morgen in huis(€5.95)!';
} else {
$shipstatus = 'Vandaag besteld = donderdag in huis(€5.95)!';
}
break;
case 3: // woensdag
if ($uur < CUTOFFTIJD) {
$shipstatus = 'Vandaag voor 15:00 besteld = morgen in huis(€5.95)!';
} else {
$shipstatus = 'Vandaag besteld = vrijdag in huis(€5.95)!';
}
break;
case 4: // donderdag
if ($uur < CUTOFFTIJD) {
$shipstatus = 'Vandaag voor 15:00 besteld = morgen in huis(€5.95)!';
} else {
$shipstatus = 'Vandaag besteld = zaterdag in huis(€5.95)!';
}
break;
case 5: // vrijdag
if ($uur < CUTOFFTIJD) {
$shipstatus = 'Vandaag voor 15:00 besteld = morgen in huis(€5.95)!';
} else {
$shipstatus = 'Vandaag besteld = woensdag in huis(€5.95)!';
}
break;
}
?>
<html>
<style>
.shipstatus{
color:#4FC431;
font-size:12px;
font-family:arial;
</style>
<body>
<div class="shipstatus">
</div>
</body>
</html>
Bedankt voor alle rectie's!!! Top!