---
title: "Räkna ut skillnader i tid"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/192816-räkna-ut-skillnader-i-tid"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Inferis"
published: "2015-11-11T13:30:41.000Z"
updated: "2015-11-12T10:03:01.000Z"
replies: 5
views: 1009
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/192816-räkna-ut-skillnader-i-tid"
---

# Räkna ut skillnader i tid

## #1 — Inferis, 2015-11-11T13:30Z

Vill någon vänlig själ hjälpa mig på traven? Får inte till det!

Jag vill räkna ut en arbetstid och kunna dra av olika saker. Alla uppgifter kommer från ett formulär som skickas.

```
$rakna_arbetstid = "" . $_POST['hours'] . "";
$rakna_mertid = "" . $_POST['mertid2'] . "";
$rakna_rasten = "" . $_POST['rast'] . "";
$rakna_kundtid = "" . $_POST['kundtid'] . ":" . $_POST['kundtid2'] . "";
$rakna_kontorstid = "" . $_POST['kontorstid1'] . ":" . $_POST['kontorstid2'] . "";

$arbetad_tid = strtotime($rakna_arbetstid);
$mertiden = strtotime($rakna_mertid);
$arbetad_rast = strtotime($rasten);
$kundtiden = strtotime($rakna_kundtid);
$kontorstiden = strtotime($rakna_kontorstid);

$ovriga_tiden = $kontorstiden + $kundtiden;
$rakna_ut_tiden = $arbetad_tid - $ovriga_tiden;

//Kolla mertid
$ett = $arbetad_tid + $mertiden;

//Dra av övrig tid
$tva = $ett - $arbetad_rast - $kontorstiden - $kundtiden;

echo("<table border=1 style='float:right;'>");
echo("<tr><td>Arbetad tid</td><td>" . $rakna_arbetstid . "</td><td>" . date("H:i", $arbetad_tid) . "</td></tr>");
echo("<tr><td>Mertid</td><td> + " . $rakna_mertid . "</td><td>" . date("H:i", $ett) . "</td></tr>");
echo("<tr><td>Rast</td><td> - " . $rasten . "</td><td></td></tr>");
echo("<tr><td>Kontorstid</td><td> - " . $rakna_kontorstid . "</td><td></td></tr>");
echo("<tr><td>Totalt</td><td></td><td>" . date("H:i", $rakna_ut_tiden) . "</td></tr>");
echo("<table>");
```

Permalänk: https://www.webforum.nu/p/192816

## #2 — prplxr, 2015-11-11T14:10Z

Hur ser dina inputs ut? Matar användaren in tidpunkter eller antal timmar/minuter?

Permalänk: https://www.webforum.nu/p/2319005

## #3 — Inferis, 2015-11-11T14:17Z

Det matas in som enbart timmar och minuter.
Echo blir exempel nedan: 
$rakna_arbetstid = 9:00
$rakna_mertid = 2:30
$rakna_rasten = 0:30

Jag försöker göra är att få:
Arbetstid
\+ mertid
\- rast
\- kundtid
osv

Permalänk: https://www.webforum.nu/p/2319006

## #4 — prplxr, 2015-11-11T14:32Z

Räkna ut antal minuter per fält först så ska det inte vara några problem att addera och subtrahera så du får korrekt tid i minuter till sist. Efter detta kan du lätt konvertera till timmar och minuter igen enligt:

```php
$minuter = 90; // Ditt resultat här
$h = intval($minuter / 60);
$m = $minuter % 60;
```

$h = timmar
$m = minuter

Permalänk: https://www.webforum.nu/p/2319007

## #5 — Inferis, 2015-11-11T18:40Z

> **[prplxr skrev:](https://www.webforum.nu/p/1573627)**
>
> Räkna ut antal minuter per fält först så ska det inte vara några problem att addera och subtrahera så du får korrekt tid i minuter till sist. Efter detta kan du lätt konvertera till timmar och minuter igen enligt:
> 
>
>
> ```php
> $minuter = 90; // Ditt resultat här
> $h = intval($minuter / 60);
> $m = $minuter % 60;
> ```
>
> 
> 
> $h = timmar
> $m = minuter

Det här förstod jag inte riktigt. Kan tillägga att matte inte är min starka sida.

Permalänk: https://www.webforum.nu/p/2319008

## #6 — prplxr, 2015-11-12T10:03Z

Okidoki. Jag ska försöka förklara, men som matte, som du säger, inte är din starka sida är pedagogik verkligen inte min starka sida, hehe.

```php
$minuter = 90; // Ditt resultat här
```

Här tilldelar du $minuter kort och gott totala antalet minuter som arbetats, dvs ditt resultat från din uträkning i minuter.

```php
$h = intval($minuter / 60);
```

Detta dividerar totala antalet minuter med 60 (dvs, du får ut ett flyttal som representerar hur många timmar antalet minuter motsvarar). intval() ser till att ta bort allt efter decimaltecknet. Du får alltså ut hur många HELA timmar det går på ditt antal minuter.

```php
$m = $minuter % 60;
```

Det här sättet att räkna på kanske inte alla känner till och kallas moduloräkning. Det gör samma uträkning som ovanstående, men istället för att lämna kvar svaret på divisionen så får du antalet hela minuter som blir kvar efter divisionen, dvs det som hamnar efter decimaltecknet. Som sagt, pedagogik är inte min grej. Hoppas det iaf gjorde dig lite klokare.

Permalänk: https://www.webforum.nu/p/2319011

---

Tråden på webben: https://www.webforum.nu/amne/php/192816-räkna-ut-skillnader-i-tid
