michaeltryl Seniormester
13. januar 2018 - 22:05 Der er 5 kommentarer

Tæl antal måneder, uger, dage....

Hej
Sidder og bøvler med lidt udregninger.
Jeg har f.eks.

39 dage mellem 2 datoer
Nu vil jeg godt udregne
Antal måneder
Antal uger
Antal dage

Så f. Eks er 39 dage
1 måned
1 uge
2 dage

Hvordan ser den udregning ud :)
erikjacobsen Forsker
13. januar 2018 - 23:51 #1
Kan du beskrive nærmere hvad du egentlig ønsker. Måneder kan være 28, 29, 30 eller 31 dage lange. Hvordan skal dine beregninger se ud i de tilfælde?
olsensweb.dk Ekspert
14. januar 2018 - 09:38 #2
du kan lave en tilnærmelses beregning med % og /

<?php
$days = 39;

$month = floor($days / 30);
$days = $days % 30;
$weeks = floor($days / 7);
$days = $days % 7;

echo $month . " " . $weeks . " " . $days;
?>


men erikjacobsen er inde på det rigtige med #1, så det rigtige vil være at tage mellem 2 datoer med date_diff
http://php.net/manual/en/function.date-diff.php
https://stackoverflow.com/questions/10427694/php-difference-in-months-between-two-dates
https://stackoverflow.com/questions/3028491/php-weeks-between-2-dates
https://stackoverflow.com/questions/14519187/calculate-months-years-and-days-between-two-given-dates-as-timestamp
michaeltryl Seniormester
14. januar 2018 - 09:59 #3
Tak forslagene.
Jeg kigger på dem.
Indtil videre er min udregning sådan her
Hvor forskellen er forskellen i sekunder mellem 2 datoer.
Gik fra dage, til sekunder da det gav nogle andre muligheder.

$maaneder = floor(($forskel-$tid[years]*31556926)/2629743.83);
$uger = floor(($forskel-$tid[years]*31556926-$maaneder*2629743.83)/604800);
$dage = floor(($forskel-$tid[years]*31556926-$maaneder*2629743.83-$uger*608400)/86400);
arne_v Ekspert
14. januar 2018 - 16:18 #4
Selv med to tider og specifik tidsforskel kan maaneder godt blive et noget uldent begreb.

Hvad er (31/1 + 1 maaned) - 1 maaned?

:-)
arne_v Ekspert
14. januar 2018 - 16:32 #5
PHP siger 3/2.

:-)

<?php
$dt = new DateTime();
$dt->setDate(2018, 1, 31);
$dt->add(new DateInterval('P1M'));
$dt->sub(new DateInterval('P1M'));
echo $dt->format('d/m/Y');
?>
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

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





Computerworld
Med ny iOS-opdatering vil du selv kunne slå udskældt batterifunktion fra på din iPhone
Apple har sænket ydeevnen på ældre iPhones for at få batteriet til at holde længere, men nu fortæller Tim Cook, at du i fremtiden selv kan slå funktionen fra.
CIO
Vestas’ CIO stopper: Torben Bonde trækker sig efter 19 år på posten
Interview: Torben Bonde har været CIO i Vestas i de seneste 19 år og har været øverste chef for mange hundrede it-medarbejdere i en global it-organisation, men nu er det slut. Her fortæller Torben Bonde om fremtidsplanerne.
Comon
Microsofts Surface Book 2 kan nu købes i Danmark - men prisen er høj
Microsofts egen hybrid-computer med et dedikeret grafikkort kan nu købes i Danmark, men særligt den store 15 tommer-model får også en høj pris.
Job & Karriere
Dansk it-virksomhed indførte fire-dages arbejdsuge: I dag er sygefraværet rekord-lavt og direktøren har tabt sig 13 kilo
Interview: Great Place To Work kategori-vinderen IIH Nordic har indført en fire-dages arbejdsuge og taget et opgør med forstyrrende storrums-kontorer og en frustrerende mailkultur. I dag er medarbejderne gladere end nogensinde før.
White paper
Mobility - her er de aktuelle udfordringer
Hvad med sikkerheden? Mobility-bølgen fejer igennem danske virksomheder, og der er masser af muligheder og faldgruber. Sikkerheden halter, men det kan der gøres noget ved. Produceret af Computerworld.dk i oktober 2014.