- date_default_timezone_set: documentation ( source)
<?php
echo "Using US/Pacific:\n";
date_default_timezone_set('US/Pacific');
$dateJan = new \DateTime('2018-01-30');
$dateMar = new \DateTime('2018-03-01');
echo "\ndateJan:" . $dateJan->format('r')."\n";
echo "\ndateMar:" . $dateMar->format('r')."\n";
echo "\nDiff Jan to Mar\n";
echo 'Diff Months: ' . (clone $dateMar)->diff((clone $dateJan))->m."\n";
echo 'Diff Days: ' . (clone $dateMar)->diff((clone $dateJan))->d."\n";
echo 'Diff Days abs: ' . (clone $dateMar)->diff((clone $dateJan))->days."\n";
echo 'Diff Hours: ' . (clone $dateMar)->diff((clone $dateJan))->h."\n";
echo "\nDiff Mar to Jan\n";
echo 'Diff Months: ' . (clone $dateJan)->diff((clone $dateMar))->m."\n";
echo 'Diff Days: ' . (clone $dateJan)->diff((clone $dateMar))->d."\n";
echo 'Diff Days abs: ' . (clone $dateJan)->diff((clone $dateMar))->days."\n";
echo 'Diff Hours: ' . (clone $dateJan)->diff((clone $dateMar))->h."\n";
echo "\nUsing Europe/Amsterdam:\n";
date_default_timezone_set('Europe/Amsterdam');
$dateJan = new \DateTime('2018-01-30');
$dateMar = new \DateTime('2018-03-01');
echo "\ndateJan:" . $dateJan->format('r')."\n";
echo "\ndateMar:" . $dateMar->format('r')."\n";
echo "\nDiff Jan to Mar\n";
echo 'Diff Months: ' . (clone $dateMar)->diff((clone $dateJan))->m."\n";
echo 'Diff Days: ' . (clone $dateMar)->diff((clone $dateJan))->d."\n";
echo 'Diff Days abs: ' . (clone $dateMar)->diff((clone $dateJan))->days."\n";
echo 'Diff Hours: ' . (clone $dateMar)->diff((clone $dateJan))->h."\n";
echo "\nDiff Mar to Jan\n";
echo 'Diff Months: ' . (clone $dateJan)->diff((clone $dateMar))->m."\n";
echo 'Diff Days: ' . (clone $dateJan)->diff((clone $dateMar))->d."\n";
echo 'Diff Days abs: ' . (clone $dateJan)->diff((clone $dateMar))->days."\n";
echo 'Diff Hours: ' . (clone $dateJan)->diff((clone $dateMar))->h."\n";