|
| Kommentar Fra : strarup |
Dato : 05-10-02 08:57 |
| | |
|
kaasgaard wrote:
> Jeg skal bruge differencen fra en bestemt dato (28/4-1999) til nu i dage
> og år.
>
> Jeg har siddet og leget lidt med mktime(0,0,0,4,28,1999) og time() og
> prøvet at formattere differencen med date(). Jeg kan bare ikke få det
> til at virke.
Differensen mellem de to timestamps, er jo ikke et antal sek. siden epoch.
For at få forskellen i eks. dage el. timer eller hvad du måtte ønske, skal
du jo bare gange differens med passende omregningsfaktorer - eks. 1/60
min/sek eller 1/(60*60*24) dag/sek.
--
mvh Jakob Kirkegaard
http://jakir.dk
| |
|
"kaasgaard" <kaasgaard.news@kandu.dk> skrev
> Jeg skal bruge differencen fra en bestemt dato (28/4-1999) til nu i dage
> og år.
>
> Jeg har siddet og leget lidt med mktime(0,0,0,4,28,1999) og time() og
> prøvet at formattere differencen med date(). Jeg kan bare ikke få det
> til at virke.
>
> Hvordan gør jeg? Det behøver ikke nødvendigvis at være med ovennævnte
> funktioner, det skal bare være i php og det skal ofc virke :)
du kan evt. lave din egen funktion?
function dirrefence($date1, $date2) {
$d1 = split("-", $date1);
$year = $d1[0];
$month = $d1[1];
$day1 = $d1[2];
// sammen med date2
// sammenlign, træk fra læg til osv...
}
--
Take Care
Kim Emax - Freelance programmør - Pt. Job og opgavesøgende.
http://www.emax.dk - http://www.ayianapa.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks måske mest avancerede VinWebShop
| |
| Accepteret svar Fra : Nyhedsbruger | Modtaget 200 point Dato : 06-10-02 21:00 |
|
kaasgaard wrote:
> Jeg har siddet og leget lidt med mktime(0,0,0,4,28,1999) og time() og
> prøvet at formattere differencen med date(). Jeg kan bare ikke få det
> til at virke.
Følgende er ikke 100% korrekt, men kommer tæt på (der er ikke taget helt
højde for skudår og dage samt tidspunktet på dagen).
# Tag tidsstemplerne fra de to dage (tidspunkter) og træk dem fra hinanden.
$timespansec = time() - mktime (0,0,0,$month,$day,$year);
# Dividér med 86400 så du får det i antal dage.
$timespandays = round($timespansec/86400);
# Dividér med 365,25 så får du antallet i hele år.
$timespanyears = round ($timespandays/365.25);
# Resten (modulus) er så antallet af dage. Modulus kan kun beregnes
# af heltal, hvorfor vi lige ganger med fire på begge sider.
$timespandays = (4 * $timespandays) % (4 * 365.25);
echo "Det er ".$timespanyears." år og ".$timespandays."dage siden.";
De herligste hilsner
--
| Claus Sørensen | Jeg vil leve i en verden, hvor al kommunikation
|--------------------| er baseret på frie og åbne standarder, så enhver
| cs@chbs.dk | har friheden til at vælge.
| http://www.chbs.dk | Claus Sørensen, 2001
| |
|
Claus Sørensen wrote:
> Følgende er ikke 100% korrekt, men kommer tæt på (der er ikke taget helt
> højde for skudår og dage samt tidspunktet på dagen).
>
> # Tag tidsstemplerne fra de to dage (tidspunkter) og træk dem fra
> # hinanden.
> $timespansec = time() - mktime (0,0,0,$month,$day,$year);
>
> # Dividér med 86400 så du får det i antal dage.
> $timespandays = round($timespansec/86400);
Ikke round men (int), så man kun får heltalsværdien:
$timespandays = (int)($timespansec/86400);
> # Dividér med 365,25 så får du antallet i hele år.
> $timespanyears = round ($timespandays/365.25);
Ligeledes (int) her:
$timespanyears = (int) ($timespandays/365.25);
> # Resten (modulus) er så antallet af dage. Modulus kan kun beregnes
> # af heltal, hvorfor vi lige ganger med fire på begge sider.
> $timespandays = (4 * $timespandays) % (4 * 365.25);
Resultatet skal divideres med 4, da det bliver fire gang så stort:
$timespandays = ((4 * $timespandays) % (4 * 365.25))/4;
> echo "Det er ".$timespanyears." år og ".$timespandays."dage siden.";
De herligste hilsner
--
| Claus Sørensen | Jeg vil leve i en verden, hvor al kommunikation
|--------------------| er baseret på frie og åbne standarder, så enhver
| cs@chbs.dk | har friheden til at vælge.
| http://www.chbs.dk | Claus Sørensen, 2001
| |
| Godkendelse af svar Fra : kaasgaard |
Dato : 07-10-02 00:43 |
|
Tak for svaret Claus. Kombineret med hvad jeg havde fundet frem til ramte det lige i øjet.
Tak til alle jer andre også. Det er sgu rart med lidt input ;)
// Martin
| |
| Kommentar Fra : strarup |
Dato : 07-10-02 01:42 |
|
Hej Martin,
hvis det sku' drille lidt er der lidt omkring mktime funktionen her... -->
http://io.spaceports.com/~wysardry/php/manual/function.mktime.html
det er fra en PHP Manual...
http://io.spaceports.com/~wysardry/php/manual/index.html
Kap VI. Calendar functions... -->
http://io.spaceports.com/~wysardry/php/manual/ref.calendar.html
Kap XVIII. Date and Time functions... -->
http://io.spaceports.com/~wysardry/php/manual/ref.datetime.html
ang. Skudår fandt jeg en kommentar på denne side der nævnte noget om hvordan det evt. ka' gøres...
http://www.php.net/manual/en/function.date.php
nede ved kommentaren... -->
-----------------------------------------
patriko2k at yahoo dot com
14-Aug-2002 10:31
-----------------------------------------
hvor Leap year bliver nævnt... (leap year = skudår)...
med ellers så vidt jeg ka' forstå på det... (kender ikke så meget til PHP endnu... er mere til ASP)... så sku' det også være muligt at bruge funktionen date("t") som der bliver skrevet i starten af kommentaren, som er blevet tilføjet fra "editoren"...
(t - number of days in the given month; i.e. "28" to "31")
der er også date("L")... -->
(L - boolean for whether it is a leap year; i.e. "0" or "1" )
"Using the PHP mktime Function"... -->
http://www.linuxguruz.org/z.php?id=306
eller denne kalender der har følgende... -->
http://www.pscode.com/xq/ASP/txtCodeId.752/lngWid.8/qx/vb/scripts/ShowCode.htm
------------------------------------------------------------------------
/* Grab the first day of the month, and total days */
$first_day = date("w", mktime(0, 0, 0, $this_month, 1, $this_year));
$total_days = date("t", mktime(0, 0, 0, $this_month, 1, $this_year));
------------------------------------------------------------------------
jeg blev lidt nysgerrig da jeg ikke kender så meget til PHP... men jeg ved ikke om noget af det overstående evt. ku' hjælpe dig med dit projekt, idet jeg er en PHPnewbie...
men umiddelbart ser det ud til at det også er muligt at få skudår puttet ind i PHP... men er det meningen at det ska' være en fast dato og tidspunkt den ska' kalkulere udfra, eller en variende?
mvh.
Strarup
| |
|
"Claus Sørensen" <cs@chbs.dk> skrev i en meddelelse
news:anq672$tha$1@news.net.uni-c.dk...
> Claus Sørensen wrote:
en hel masse vildt ...
....
> > # Tag tidsstemplerne fra de to dage (tidspunkter) og træk dem fra
> > # hinanden.
> > $timespansec = time() - mktime (0,0,0,$month,$day,$year);
> >
> > # Dividér med 86400 så du får det i antal dage.
> > $timespandays = round($timespansec/86400);
SNIP
Hold da op du er vild !!
> De herligste hilsner
> --
> | Claus Sørensen | Jeg vil leve i en verden, hvor al kommunikation
--
Regards, yours truly madly
(-: KGB
http://goshin-jitsu.dk
CALM UNDER PRESSURE
| |
| Du har følgende muligheder | |
|
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.
Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
| |
|
|