Avatar billede techboy992 Praktikant
12. november 2013 - 04:44 Der er 3 kommentarer og
1 løsning

Dato udregning

Dato udregning

Jeg taenkte om det er muligt at lave et lille script der kan fortaelle hvor naeste udbetaling er paa min hjemme side

Jeg udbetaler 2 gange om maaneden

periode 1 er 1. - 15.
Udbetaling den 16.

periode 2 er 16. - maaned slut
Udbetaling den 1.
Avatar billede madslundholm Novice
12. november 2013 - 08:17 #1
Det skulle være meget simpelt.
Brug PHP date's funktion til at spørge om man er over d. 1. Men er under d. 16. Hvis det er dette så skal den udskrive den 16. Og så måned og år.
Og hvis den er falsk så skal den udskrive d. 1. Næste måneder og år
Avatar billede cht22 Professor
12. november 2013 - 12:18 #2
Det kan gøres sådan:



<?php
$nextmonth = date("m",mktime(0,0,0,date("m")+1,date("d"),date("Y")));
$nextmonth_year = date("Y",mktime(0,0,0,date("m")+1,date("d"),date("Y")));

if (date("d") < 16) {
echo "Næste udbetaling er den 16. " . date("m. Y");
}
else {
echo "Næste udbetaling er den 1. $nextmonth. $nextmonth_year";
}
?>
Avatar billede repox Seniormester
12. november 2013 - 12:27 #3
En bedre løsning er at tage PHP's DateTime object og som gør du kan manipulere med datoerne på en objekt orienteret måde:

<?php

$date = new DateTime();
$next_payment = new DateTime();

if( $date->format('d') < 16 )
    $next_payment->setDate($date->format('Y'), $date->format('m'), 16);
else
    $next_payment->setDate($date->format('Y'), $date->format('m') + 1, 1);

$interval = $date->diff($next_payment);
echo "Der er ".$interval->format('%a')." dag(e) til næste udbetaling som er d. ".$next_payment->format('d/m-Y');
Avatar billede repox Seniormester
12. november 2013 - 12:28 #4
Og det er så det fede ved måde som ekserten håndterer <pre> elementer på...

<?php

$date = new DateTime();
$next_payment = new DateTime();

if( $date->format('d') < 16 )
    $next_payment->setDate($date->format('Y'), $date->format('m'), 16);
else
    $next_payment->setDate($date->format('Y'), $date->format('m') + 1, 1);

$interval = $date->diff($next_payment);
echo "Der er ".$interval->format('%a')." dag(e) til næste udbetaling som er d. ".$next_payment->format('d/m-Y');
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester