Kom ihåg mig?
Home Menu

Menu


PHP Hjälp, Date och Time, addering

 
Ämnesverktyg Visningsalternativ
Oläst 2004-10-11, 20:38 #11
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Citat:
Ursprungligen postat av Mikael Simonsson
Citat:
Ursprungligen postat av Jonas
*SUCKAR*

Lär er PHP innan ni postar sjuk kod...

Kod:
$date = date("Y-m-d");
$nydate date("Y-m-d",strtotime('+2 week'));

if ($date < $nydate) {
}
Jonas om du tycker vi postar sjuk kod så måste jag fråga varför du använder funktionen date()? date() returnerar en sträng, t.ex. '2004-10-11' (beronde på inparameter förstås). Det är samma sak som att skriva:

Kod:
if ( '2004-10-11' < '2004-10-25' )
{
 *...
}
Väldigt opålitligt med andra ord.

Det finns flera anledningar till att PHP använder timestamps (integer) internt, och en av dessa är effektivitet. Så min rekommendation till alla här är att jobba med timestamps istället, spara timestamps i databasen och konvertera till / från sträng endast när det är nödvändigt.

(Jonas detta är inget påhopp med att skriva en sån sak är bara onödigt.)
Jag är medveten om att det levereras i ett sådant format. Men eftersom hans exempel var det och jag bara visade att man behöver inte 50000kilometer kod för att göra en sak snabbt med en enkel funktion som är gjord för ändamålet.
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-10-11, 21:58 #12
kullervos avatar
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2003
Inlägg: 1 519
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
kullervos avatar
 
Reg.datum: Dec 2003
Inlägg: 1 519
Citat:
Ursprungligen postat av Mikael Simonsson
Citat:
Ursprungligen postat av Jonas
*SUCKAR*

Lär er PHP innan ni postar sjuk kod...

Kod:
$date = date("Y-m-d");
$nydate date("Y-m-d",strtotime('+2 week'));

if ($date < $nydate) {
}
Jonas om du tycker vi postar sjuk kod så måste jag fråga varför du använder funktionen date()? date() returnerar en sträng, t.ex. '2004-10-11' (beronde på inparameter förstås). Det är samma sak som att skriva:

Kod:
if ( '2004-10-11' < '2004-10-25' )
{
 *...
}
Väldigt opålitligt med andra ord.

Det finns flera anledningar till att PHP använder timestamps (integer) internt, och en av dessa är effektivitet. Så min rekommendation till alla här är att jobba med timestamps istället, spara timestamps i databasen och konvertera till / från sträng endast när det är nödvändigt.

(Jonas detta är inget påhopp med att skriva en sån sak är bara onödigt.)
Du är nog den ända som uppmärksammade vad som EGENTLIGEN skulle göras . Självklart är unix timestamp bättre att använda i det här fallet.
kullervo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-12, 11:56 #13
matlin matlin är inte uppkopplad
Medlem
 
Reg.datum: Nov 2004
Inlägg: 53
matlin matlin är inte uppkopplad
Medlem
 
Reg.datum: Nov 2004
Inlägg: 53
Kod:
if (time() < strtotime('+2 week')) {}
med andra ord ...
En annan funktion som jag gillar är:
Kod:
$fjortondarsenare = mktime (12, 0, 0, date("m"), date("d")+14, date("Y"));
vilket ger mer kod iofs.
matlin är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-14, 18:51 #14
Tvartom Tvartom är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 86
Tvartom Tvartom är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 86
Spara värdena efter SQL:s egna datatyper för datum, exportera de sedan med:
Kod:
SELECT UNIX_TIMESTAMP(tid) AS mintid FROM ...
om du behöver unix-format!

På andra hållet blir det:
Kod:
INSERT INTO tbl (tid) VALUES (FROM_UNIXTIME(unixtimestamp))

Mycket av jämförelser kan läggas in i SQL-frågan:
Kod:
SELECT id, tid FROM tbl WHERE tid < NOW() + INTERVAL 14 DAY
(Det skall gå med WEEK med, men jag får det inte att funka)

eller kanske
Kod:
SELECT id, tid, IF(tid < NOW() + INTERVAL 14 DAY, 1, 0) AS snart FROM tbl
Beroende på vad som ska göras!
Tvartom är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 14:29.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017