Toon posts:

[PHP] Add days to date

Pagina: 1
Acties:
  • 61 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik ben een rapportage aan het maken, waarbij hij een datum uit een datebase haalt en daar x dagen bij probeert op te tellen. Ik snap alleen geen hol van die optelfunctie die op php.net beschreven wordt. Heeft iemand enig idee hoe je het eenvoudigst x dagen bij een datum op kan tellen? De datum komt overigens als int uit de database (stupid, i know, maar het is niet mijn database). Vervolgens wordt de datum naar normale format geplakt (in de sql statement), als volgt:

FROM_UNIXTIME(`created_date`, '%c/%e/%Y %H:%i') as created_date

Hoe kan ik hier nou x dagen bij optellen?

  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 14:35

Tux

Je datum omzetten naar een UNIX-timestamp en er 4*86400 bij optellen, en dan de datum weer naar een normaal formaat omzetten :)

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


Verwijderd

Topicstarter
Tux schreef op zondag 24 april 2005 @ 17:56:
Je datum omzetten naar een UNIX-timestamp en er 4*86400 bij optellen, en dan de datum weer naar een normaal formaat omzetten :)
Errrr. Say again? Hoe doe ik dat?

  • yade
  • Registratie: Mei 2002
  • Laatst online: 25-11-2025
Volgens mij is een unixtime in seconden, dus je kan er gewoon seconden bij optellen. Een dag heeft 86400 seconden.

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 07-05 12:23

chem

Reist de wereld rond

Ten eerste is er niets mis met een unix timestamp voor tijdnotatie; en als je dat niet inziet ligt dat eerder aan jouw programmeerervaring dan aan de bouwer van de applicatie.

Ten tweede is er zoiets als strtotime().

Ten derde; als je de output van je query wil aanpassen, dan moet je dat in je query doen en niet je data post-processen als het even kan.

Klaar voor een nieuwe uitdaging.


Verwijderd

Topicstarter
maar hoe zet ik een waarde om naar unix timestamp? want ik kan niet in die strtotime mijn $row["meuk"] plakken :S

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 07-05 12:23

chem

Reist de wereld rond

De :S smiley kennen we hier niet.

Heb je uberhaupt de moeite genomen om uit te zoeken wat een unix timestamp is? Heb je BtM909 en Tux hun tips al uitgeprobeerd en nagezocht?

Klaar voor een nieuwe uitdaging.


Verwijderd

Topicstarter
Natuurlijk ben ik ermee bezig, maar ik ben gewoon (nog) niet zo goed met PHP. Ik heb nu het volgende:

$create = strtotime($row["created_date"]);
$sla = $create + (4*4*86400);

Dus eigenlijk: tijd dat hij gecreated is naar unixtimestamp, dan er x dagen bijtellen. Maar hoe kan ik nu die tijd weer afbeelden als datum, gewoon met normaal format? Met de date() functie moet dat kunnen, maar hoe plak ik zeg maar mijn waarde erin?

echo date("H:i:s"); geeft de huidige tijd, niet de tijd die uit de som komt?! Hoe converteer je die timestamp weer naar php terug?

  • PowerSp00n
  • Registratie: Februari 2002
  • Laatst online: 17-11-2025

PowerSp00n

There is no spoon

Verwijderd schreef op zondag 24 april 2005 @ 18:34:
Natuurlijk ben ik ermee bezig, maar ik ben gewoon (nog) niet zo goed met PHP.
Maar wel het werk van andere afkraken?
echo date("H:i:s"); geeft de huidige tijd, niet de tijd die uit de som komt?! Hoe converteer je die timestamp weer naar php terug?
http://www.php.net/date

  • McRubz
  • Registratie: Januari 2004
  • Niet online
http://nl3.php.net/date :
Description
string date ( string format [, int timestamp] )

echo date("H:i:s", $unixtimestamp);

Verwijderd

Topicstarter
McRubz schreef op zondag 24 april 2005 @ 18:40:
http://nl3.php.net/date :
Description
string date ( string format [, int timestamp] )

echo date("H:i:s", $unixtimestamp);
$create = strtotime($row["created_date"]);
$sla = $create + (4*4*86400);
echo date("c/e/Y H:i", $sla);

Dat is dus nu mijn datum, maar de output is nogal vreemd:

2005-05-08T11:22:00+02:00/e/2005 11:22

Wat doet ie fout?

Verwijderd

Topicstarter
Oude datum:
4/22/2005 11:22

Uitkomst som:
2005-04-26T11:22:00+02:00/e/2005 11:22

Ik zie er wel in staan: 2005-04-26T11:22:00+02:00/e/2005 11:22, dat is inderdaad 4 dagen later, maar wat is die ellende die erachter staat dan? En belangrijker, hoe krijg je dat weg :)

  • PowerSp00n
  • Registratie: Februari 2002
  • Laatst online: 17-11-2025

PowerSp00n

There is no spoon

Anders ga je gewoon even beter de manual lezen ofzo.

code:
1
2
c   ISO 8601 date (added in PHP 5)
e ?????

  • DiLDoG
  • Registratie: Oktober 2002
  • Laatst online: 15-04 11:31
http://dev.mysql.com/doc/...e-and-time-functions.html


code:
1
SELECT DATE_ADD(`created_date`, INTERVAL 2 DAY) AS `new_date` FROM `mytable`

Verwijderd

Topicstarter
Maar kan ik nu ook gaan rekenen met die unix timestamps? Dus bijvoorbeeld:

het verschil bepalen tussen de net berekende datum en een datum uit de database? En kan ik dat dan weergeven als bijvoorbeeld: -1 day(s) ofzo?

  • koraks
  • Registratie: Oktober 2003
  • Niet online
Verwijderd schreef op zondag 24 april 2005 @ 18:59:
Maar kan ik nu ook gaan rekenen met die unix timestamps?
Ja, maar dat was toch ook het hele idee achter het gebruiken van timestamps in deze situatie? :+
het verschil bepalen tussen de net berekende datum en een datum uit de database?
Optellen, aftrekken enz. kan allemaal met timestamps. Het zijn gewoon integers en zo kun je er ook mee rekenen.
En kan ik dat dan weergeven als bijvoorbeeld: -1 day(s) ofzo?
M.b.v. date() kun je een timestamp precies zo formatten zoals je wil. Dit staat overigens allemaal zeer duidelijk uitgelegd in het PHP manual. Ga dat dus eens lezen, want echt alles wat je gevraagd hebt, staat er letterlijk in!

Verwijderd

Ik zit me echt vreselijk af te vragen waarom je überhaupt iets probeert te maken.
Zéér opmerkelijk dat je met al die beschikbare documentatie niets weet te bedenken.

  • Victorio
  • Registratie: Januari 2001
  • Laatst online: 01-02-2024
Daarnaast kan je ook vast wel wat in de search vinden over PHP timestamps. :*)

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 06-05 18:51

Creepy

Tactical Espionage Splatterer

Misschien dat het eens tijd wordt op de PHP docs erbij te pakken, want met die docs had je er zelf uit kunnen komen. Nu in combinatie met de tips die je hebt gekregen lijkt het me helemaal geen probleem meer.

Lees AUB P&W FAQ - Het FAQ/Beleid topic eens door en met name P&W FAQ - De "quickstart" zodat je weet wat we van een topicstart verwachten.

[ Voor 92% gewijzigd door Creepy op 24-04-2005 20:53 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.