echo date("H", 85620).' uur';

geeft als output : 00 uur

maar dat zou volgens mij 23 uur moeten zijn.
Hoe kan dat en kan ik daar wat aan doen?
Zie php.net

string date ( string $format [, int $timestamp = time() ] )

Dus er wordt een timestamp verwacht en niet een simpel getal.
Shit,

ik had dit ergens vandaan om de tijd tussen 2 timestamps te bepalen, maar hij geeft dus altijd een uur te veel.
Timezone probleem??
Hoe dit op te lossen dan ?

$comparedate = time();
$dbDate = strtotime($datetimeuitdatabase]);
$diff = 86400 - ($comparedate-$dbDate);
if ($dbDate + 86400 > $comparedate ){
echo '</td><td>nog '.date('H', $diff).':H '.date('i', $diff).$diff.':m</td></tr>';
}
else{
// doe iets anders
}
Kan je dit niet gewoon in de query doen?
Nee, dit staat in een while met meerdere resultaten.
bij resultaat korter dan een dag geleden moet hij tijd aangeven (nog te gaan) en anders moet hij een button laten zien.
De if gaat trouwens wel op tijd.!
Dat kan de query uitrekenen.
Dan moet ik de output van het verschil dus uit de query laten komen met AS 'diff' ?
Heel andere benadering...
Bijvoorbeeld.
Ik heb een snellere gevonden ,ik tel 82800 erbij op.
Lelijk, maar het werkt.

$comparedate = time();
$dbDate = strtotime($datetimeuitdatabase]);
$diff = 82800 - ($comparedate-$dbDate);
if ($dbDate + 86400 > $comparedate ){
echo '</td><td>nog '.date('H', $diff).':H '.date('i', $diff).':m</td></tr>';
}
else{
// doe iets anders
}

[size=xsmall]Toevoeging op 03/02/2014 22:12:49:[/size]

Het is dus ook geen timezone probleem !
Voor diegene die hier ooit nog eens naar op zoek gaat.

Reageren