$date = new DateTime('now', new DateTimeZone('Australia/Perth'));
echo 'current time in Perth: ' . $date->format('d-m-Y H:i:s') . '<br>';
echo 'current timestamp in Perth: ' . $date->getTimestamp() . '<br>';
$date->setTime(0, 0);
echo 'time in Perth at midnight: ' . $date->format('d-m-Y H:i:s') . '<br>';
echo 'timestamp in Perth at midnight: ' . $date->getTimestamp() . '<br><br>';
$date = new DateTime('now', new DateTimeZone('Europe/Amsterdam'));
echo 'current time in Amsterdam: ' . $date->format('d-m-Y H:i:s') . '<br>';
echo 'current timestamp in Amsterdam: ' . $date->getTimestamp() . '<br>';
$date->setTime(0, 0);
echo 'time in Amsterdam at midnight: ' . $date->format('d-m-Y H:i:s') . '<br>';
echo 'timestamp in Amsterdam at midnight: ' . $date->getTimestamp() . '<br>';
?>
Resultaat:
current time in Perth: 23-12-2019 22:49:18
current timestamp in Perth: 1577112558
time in Perth at midnight: 23-12-2019 00:00:00
timestamp in Perth at midnight: 1577030400
current time in Amsterdam: 23-12-2019 15:49:18
current timestamp in Amsterdam: 1577112558
time in Amsterdam at midnight: 23-12-2019 00:00:00
timestamp in Amsterdam at midnight: 1577055600
Volgens Epoch Unix Time Stamp Converter is deze stamp de vorge dag: 12/22/2019 @ 11:00pm (UTC)
(dus zelfde als waar ik tegenaan loop)
Ik gebruik deze tijd om events te tonen. Event wordt wel of niet getoond, gebaseerd op de NL tijd.
Omdat ik nu nog de UTC tijd gebruik, is event tot 01:00 NL tijd zichtbaar.
Guido
[size=xsmall]Toevoeging op 23/12/2019 16:34:48:[/size]
Ik denk dat ik het gevonden heb door de offset erbij op te tellen:
$date = new DateTime('now', new DateTimeZone('Europe/Amsterdam'));
$date->setTime(0, 0);
$midnight = $date->getTimestamp()+$date->getOffset();
echo 'timestamp in Amsterdam at midnight: ' .$midnight.'<br>';
Ja, ik moet vandaag 12:00 am hebben. Dus ik tel de offset er weer bij op. Zodat het vandaag 12:00 am wordt. Oftewel, een event blijft de hele dag zichtbaar en verdwijnt na 12:00 am vannacht.
Each parameter of this function uses the default time zone unless a time zone is specified in that parameter. Be careful not to use different time zones in each parameter unless that is intended. See date_default_timezone_get() on the various ways to define the default time zone.
Dus ja als je dan de default time zone naar Europe/Amsterdam zet dan zou het moeten werken.