Вы не предоставить информацию о том, что вы хотите проверить, но я предполагаю, что у вас есть функции, чтобы сделать вещи, связанные со временем, например:
function setExpiryTime(DateTime $start, $minutes){
}
Очевидный тест, чтобы обеспечить входные параметры, которые сделают ваш код пересекает границы DST. Вы можете найти такую информацию в вашей любимой поисковой системы или запустить простой PHP фрагмент:
<?php
$timezone = new DateTimeZone('Europe/London');
print_r($timezone->getTransitions(mktime(0, 0, 0, 1, 1, date('Y')), mktime(0, 0, 0, 12, 31, date('Y'))));
Array
(
[0] => Array
(
[ts] => 1388530800
[time] => 2013-12-31T23:00:00+0000
[offset] => 0
[isdst] =>
[abbr] => GMT
)
[1] => Array
(
[ts] => 1396141200
[time] => 2014-03-30T01:00:00+0000
[offset] => 3600
[isdst] => 1
[abbr] => BST
)
[2] => Array
(
[ts] => 1414285200
[time] => 2014-10-26T01:00:00+0000
[offset] => 0
[isdst] =>
[abbr] => GMT
)
)
Таким образом, вы можете проверить:
setExpiryTime(new DateTime('2014-03-30T00:55:00+0000'), 10);
setExpiryTime(new DateTime('2014-10-26T00:55:00+0000'), 10);
«без необходимости ждать, пока часы меняются». Как насчет изменения системного времени вручную? – marekful
Я сомневаюсь, что есть альтернатива изменению системных часов. На какой ОС вы тестируете? – ToBe
Может протестировать что угодно, кроме Windows. Возможно, вы правы в отношении системного времени, что звучит разумно, так как я хочу проверить все, начиная с datapicker и заканчивая базой данных, так что система = разумная. –