webForumDet fria alternativet

problem med att räkna fram i tiden med date()

PHP

3 svar · 458 visningar · startad av Qonos

Medlem sedan sep. 2000438 inlägg
Frågan#1

Hejsan.. sitter här och fattar ingenting... :(

$order["journey_stay_first"] = 1161900000;

$adddays = $order["journey_stay_first"] + ( $_GET["x"] * 24 * 60 * 60);	
$journey_first_stay_date = date('ymd', $order["journey_stay_first"]);
$journey_last_stay_date = date('ymd', $adddays);

sätter jag $x som 1 eller 2 så fungerar det som det ska, men blir $x 3 eller mer så "försvinner" en dag. Det vill säga att slutresultatet blir samma om jag sätter $x som 2 eller 3, sätter jag sen $x som 4 så blir det en dag längre än 2.

någon som har koll som vill räcka mig en hjälpande hand?

Medlem sedan aug. 2001145 inlägg
#2

Ser onekligen ut som om de är en bugg i php vid precis de klockslaget av någon anledning.
Det skiftar en timme bakåt precis efter den 29onde vilket den inte bör :)

$order["journey_stay_first"] = 1161900000;
x, start, end:
0, 06 10 27 12:00:00, 06 10 27 12:00:01
1, 06 10 27 12:00:00, 06 10 28 12:00:01
2, 06 10 27 12:00:00, 06 10 29 12:00:01
3, 06 10 27 12:00:00, 06 10 29 11:00:01
4, 06 10 27 12:00:00, 06 10 30 11:00:01

$order["journey_stay_first"] = time();

x, start, end:
0, 06 09 10 08:08:12, 06 09 10 08:08:13
1, 06 09 10 08:08:12, 06 09 11 08:08:13
2, 06 09 10 08:08:12, 06 09 12 08:08:13
3, 06 09 10 08:08:12, 06 09 13 08:08:13
4, 06 09 10 08:08:12, 06 09 14 08:08:13

Det borde ju verkligen bli samma timme när man lägger till precis 24*dagar i sekunder

bugg bugg bugg.

Går ju att ta -60 sekunder och öka x med 1 för att få de rätt men de är ju inte en speciellt snygg lösning.

Medlem sedan sep. 2000438 inlägg
#3

Jo nått sånt kan man ju göra.
kan det vara en sommartid / vintertid bugg?

min lösning blev att koda om det:

$adddays = strtotime("+".$_GET["x"]." days",  $order["journey_stay_first"]);
Medlem sedan sep. 2000438 inlägg
#4

haha

We are happy to tell you that you just discovered Daylight Savings
Time. For more information see:
http://webexhibits.org/daylightsaving/b.html
Instead of using mktime/date consider using gmmktime and gmdate which
do
not suffer from DST.

You are not adding days but seconds as an offset.

251 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)