[PHP] Rekenen met timestamp

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Tijsje
  • Registratie: Februari 2001
  • Laatst online: 18-09 08:29
Hoe kan ik in php rekenen met een timestamp?
Ik weet dat een timestamp gewoon in seconden is, en dat je er dus voor een dag gewoon 24 x 60 x 60 seconden bij op moet tellen.
maar hoe doe ik dit bij een jaar?
Ik wil natuurlijk niet in de problemen komen met schrikkeljaren enz.
Bij alles wat ik vind maken ze gebruik van mktime, maar deze genereerd toch alleen een timestamp en kan met een bestaande toch niet rekenen?

Acties:
  • 0 Henk 'm!

Verwijderd

Je kan de timestamp met getdate uit elkaar trekken, dan aanpassen en met mktime weer in elkaar draaien.

Acties:
  • 0 Henk 'm!

  • ikke007
  • Registratie: Juni 2001
  • Laatst online: 18-09 14:10
www.php.net/mktime

int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]])
je kunt heel simpel gewoon het volgende doen mktime($hour,$minute,$second,$month,$day,($year+1)) en dan rekent mktime het zelf om naar de correcte values.. dat is de kracht van mktime :)

Lets remove all security labels and let the problem of stupidity solve itself


Acties:
  • 0 Henk 'm!

Verwijderd

Hoe bedoel je dat wil wil rekenen aan een timestamp? Wat wil je exact doen? Je kan toch gewoon veelvouden van dagen bij de timestamp optellen? Kan je iets duidelijker zijn in je probleemstelling?

Acties:
  • 0 Henk 'm!

  • Tijsje
  • Registratie: Februari 2001
  • Laatst online: 18-09 08:29
Verwijderd schreef op vrijdag 10 december 2004 @ 19:34:
Hoe bedoel je dat wil wil rekenen aan een timestamp? Wat wil je exact doen? Je kan toch gewoon veelvouden van dagen bij de timestamp optellen? Kan je iets duidelijker zijn in je probleemstelling?
Ik heb een variabele met een timestamp er in, hier wil ik drie jaar bij optellen.
Nu gaat dat waarschijnlijk wel via $timestamp = $timestamp + mktime(0,0,0,0,0,3);
Maar zo worden de schrikkeldagen niet meegenomen denk ik.
Nu kan ik de timestamp wel weer terug omzetten in dagen, maanden en jaren en er dan via mktime 3 jaar bij optellen.
Maar dit lijkt me niet "de" manier.
Iemand een betere oplossing?

Acties:
  • 0 Henk 'm!

Verwijderd

Helaas is dat wel de manier ;-)

code:
1
2
3
4
function AddYears($timestamp, $add_years)
{
  return mktime(date("G", $timestamp), date("i", $timestamp), date("s", $timestamp), date("m", $timestamp), date("d", $timestamp), (date("Y", $timestamp)+$add_years));
}

(niet getest)

Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 22:34
strtotime() is de functie die jij zoekt.

Dat gebruik je dus ongeveer zo:
PHP:
1
2
$date = 178918; //willekeurige timestamp
$newdate = strtotime("+3 year", $date);

[ Voor 48% gewijzigd door T-MOB op 10-12-2004 22:33 . Reden: Hoeveel fouten kun je maken in een post van 4 regels.. grr ]

Regeren is vooruitschuiven

Pagina: 1