Error: DateTimeZone::__construct: Unknown or bad timezone (7200)
I have a similar setup running Drupal 6 and CiviCRM 4.7.25. My system also showed System Status: Critical and no messages. The issue was is that it first attempts to set the time zone and if that fails it doesn't output any further messages for some reason.

In CiviCRM version 4.7.25 you can use the API console to run the System.check action by visiting http://sitename/civicrm/api#explorer and choosing Entity System and action check to repeat this test while you edit the files.

The fix is to fix the time zone problem which inherits from the Drupal 6 user and sets (in my case) an invalid time zone string which creates this issue.

For instances with Drupal 6, it uses the method CRM_Utils_System_Drupal6::getTimeZoneString() which retrieves the time zone from the user's timezone member in the database, which in my case is the offset in seconds, or a string -14400 for Eastern Time.

The problem is the DateTimeZone code which converts this into a database time zone string supports offsets in hours, not seconds, so I added this code to detect and adjust the values, use at your own risk:

--- Drupal6.php (revision 4843)
+++ Drupal6.php (working copy)
@@ -754,6 +754,9 @@
     // Note that 0 is a valid timezone (GMT) so we use strlen not empty to check.
     if (variable_get('configurable_timezones', 1) &amp;&amp; $user-&gt;uid &amp;&amp; isset($user-&gt;timezone) &amp;&amp; strlen($user-&gt;timezone)) {
       $timezone = $user-&gt;timezone;
+     if (is_numeric($timezone) &amp;&amp; $timezone % 3600 === 0 &amp;&amp; abs($timezone) &gt;= 3600) {
+         $timezone = intval($timezone / 3600);
+     }
     }
     else {
       $timezone = variable_get('date_default_timezone', NULL);


Once I patched this, the check step works correctly and I can review the further messages we're getting. Another trick here, by the way, is to update CRM_Utils_Check::CHECK_TIMER in sites/all/modules/civicrm/CRM/Utils/Check.php to a small number while you're debugging, otherwise the checks update only once a day.

As always, use best practices when working on production systems and back up all source files before modifying them.

The other possible place to look is in the Drupal variables table for the named value date_default_timezone which is used if the user does not have a time zone configured.