Exhaust_, по идее должно работать:
Установить часовой пояс с переходом на зимнее летнее время.
Set timezone with DST (daylight saving time).
function isWorkTime() {
var date = new Date;
// timezone UTC+2 winter time
var time = date.setTime(date.getTime() + (date.getTimezoneOffset() + 2 * 60) * 60 * 1000);
// timezone UTC+3 summer time?
date.setMonth(2, 31); // March 31
date.setHours(4, 0, 0, 0); // 04:00:00:000
if (time >= date.setDate(31 - date.getDay())) { // > last Sunday?
date.setMonth(9, 31); // October 31
date.setHours(3, 0, 0, 0); // 03:00:00:000
if (time < date.setDate(31 - date.getDay())) { // < last Sunday?
time += 60 * 60 * 1000;
}
}
date.setTime(time);
// Monday-Friday 09:30-18:00?
return !!(date.getDay() % 6) && (time >= date.setHours(9, 30, 0, 0) && time < date.setHours(18, 0, 0, 0));
}
alert(isWorkTime());