Hallo,

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
php werkt met de server datum en tijd, indien het een server in de VS is zal deze niet vanzelf een het Nederlandse uur gebruiken.

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?

<?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.';
        }
    }
}
?>
Beste 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 moet ik dus alleen nog $bezorging laten echo-en waar ik het wil laten verschijnen?

Ja uiteraard.

<?php
echo $bezorging;
?>
Bedankt allemaal!

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)


De 500-error zal waarschijnlijk niet van het voorbeeldscript komen. Laat eens zien wat je hebt gedaan?

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).
<?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.';
}
}
}
?>


<?php
echo $bezorging;
?>

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

Reageren