- microtime: documentation ( source)
- date: documentation ( source)
- number_format: documentation ( source)
- printf: documentation ( source)
<?php
function measure_duration(callable $callback) {
$start = microtime(true);
call_user_func($callback);
$duration = microtime(true) - $start;
printf("Duration: %s\n\n", number_format($duration, 6));
}
$timezone = new DateTimeZone('Europe/Berlin');
measure_duration(function() use($timezone) {
printf("Default Value\n");
$timezone->getTransitions();
});
measure_duration(function() use($timezone) {
$timestamp = 0;
printf("Timestamp for %s\n", date('Y-m-d H:i:s', $timestamp));
$timezone->getTransitions($timestamp);
});
measure_duration(function() use($timezone) {
$timestamp = -62135596800;
printf("Timestamp for %s\n", date('Y-m-d H:i:s', $timestamp));
$timezone->getTransitions($timestamp);
});