Since different needs for defining timezone information appears in different places around CiviCRM, we should think about introducing a system wide (domain_id dependant) setting, allowing to define specific timezone in which given instance operates.
This setting would be used as a default value for timezone component of a couple of different date fields (described below next to specific issues) or other places where we could make use of timezone information. Each place would allow setting any timezone, however it would always be set by default for system defined timezone.
Solving above problem will probably allow us to visit/revisit following issues (to be described in detail):
Specs (IN PROGRESS):
We need to have ability to handle three levels of timezone information:
- server timezone (assumption is that we don't have any influence on that)
- CiviCRM instance timezone (administrative configuration setting, per domain, defaulted to server timezone)
- specific task timezone - users are allowed to set timezone information for selected tasks, like mailing send out time or event registration deadline)