webForumDet fria alternativet

räkna ut antal dagar mellan två datum

PHP

15 svar · 2 037 visningar · startad av Emil W

Medlem sedan mars 2009512 inlägg
Frågan#1

Hur ska man räkna ut antal dagar det är från dagens datum till det datumet jag har i tabellen ?

Datum formatet är så här 2010-06-02 12:00:00

Medlem sedan juni 20019 519 inlägg
#2

formatet spelar ingen roll, så länge det är en timestamp så kan du formatera den som vanligt:

datum1-datum2 för att få differansen på de två datumerna idag kl 16.00 till idag 16.00 är 86400 sekunder

$difference = $dateto - $datefrom; // Difference in seconds
$days = floor($difference/86400)

något i den stilen skulle jag gissa att man skriver i php.

Medlem sedan mars 2009512 inlägg
#3

Jag ska ha från dagens datum till en annat datum.

Medlem sedan juni 20019 519 inlägg
#4

ja?
Sätt variablerna $dateto och $datefrom till de variabler du behöver, jag kan inte direkt gissa på vilka datum du vill köra.

Medlem sedan mars 2009512 inlägg
#5

Jag får detta

00

så här ser koden ut.

while($row = mysql_fetch_array($utan))
{
$dateto = date('Y-m-d');
$datefrom = htmlspecialchars($row['datumslut']);
$difference =   $datefrom - $dateto; // Difference in seconds
$days = floor($difference/86400);
echo $days;
}
Medlem sedan juni 20014 290 inlägg
#6

Kommer inte att fungera.

Gör om strängarna först till "unixformat", sedan gör du diffen därefter formaterar du "unixformatet" som du vill ha det.

Ex;

<?php

date_default_timezone_set("Europe/Stockholm");

$datum1="2010-01-15 12:34";
$datum2="2010-02-15 12:12";

$udatum1=strtotime($datum1);
$udatum2=strtotime($datum2);

$udatum=$udatum2-$udatum1;

# Skriv ut antalet dagar
echo $udatum/86400; # Dividera med antalet sekunder per dygn

?>
Medlem sedan mars 2009512 inlägg
#7

Vad menar du med diffen ?

Medlem sedan maj 20011 826 inlägg
#8

Emil W skrev:

Vad menar du med diffen ?

http://sv.wikipedia.org/wiki/Differens

Medlem sedan mars 2009512 inlägg
#9

erciz skrev:

http://sv.wikipedia.org/wiki/Differens

Då vet jag vad GunnarD menar med diffens.

Medlem sedan mars 2009512 inlägg
#10

Så här ser koden ut nu

while($row = mysql_fetch_array($utan))
{
date_default_timezone_set("Europe/Stockholm");

$d = date('Y-m-d H:i:S');

$utt = htmlspecialchars($row['datum']);
$datum1="$d";
$datum2="$utt";

$udatum1=strtotime($datum1);
$udatum2=strtotime($datum2);

$udatum=$udatum2-$udatum1;

# Skriv ut antalet dagar
echo $udatum/86400; # Dividera med antalet sekunder per dygn
}

Jag får bara massa siffror.
14663.63453703714656.625509259

Vad beror detta på ?

Medlem sedan maj 20011 826 inlägg
#11

...för att du har glömt detta:

GunnarD skrev:

därefter formaterar du "unixformatet" som du vill ha det.

Medlem sedan mars 2009512 inlägg
#12

GunnarD skrev:

Kommer inte att fungera.
Gör om strängarna först till "unixformat", sedan gör du diffen därefter formaterar du "unixformatet" som du vill ha det.

Hur formaterar man till unixformat ?

Medlem sedan maj 20011 826 inlägg
#13

Duger inte det som voigtann1 skrev lite högre upp? http://www.webforum.nu/showpost.php?p=1498655&postcount=2

Medlem sedan mars 2009512 inlägg
#14

Jo den duger.

Jag skrev echo floor($udatum/86400); nu.

nu får jag 147160

Medlem sedan maj 20011 826 inlägg
#15

Emil W skrev:

Jo den duger.

Jag skrev echo floor($udatum/86400); nu.

nu får jag 147160

Markera då hans svar som lösning.

Medlem sedan mars 2009512 inlägg
#16

Jag får behålla

$udatum1=strtotime($datum1);
$udatum2=strtotime($datum2);

Ett stort tack till alla som har försökt och hjälpt mig :)

259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)