static function RunSelfTests() { date_default_timezone_set('UTC'); mb_internal_encoding('UTF-8'); $result = array(); $now = time(); foreach (self::$selfTests as $key => $test) { if ($key === 'now') { $now = $test; } else { $lang = $test[0]; if (isset(self::$languages[$lang])) { array_shift($test); } else { $lang = 'en'; } list($format, $date, $expected) = $test; $timestamp = is_string($date) ? $date : $now + $date; $datefmt = new self($timestamp); $datefmt->now = $now; $datefmt->LoadLanguage($lang); $got = $datefmt->FormatAs($format); if ($got === $expected) { $result[] = false; } else { $result[] = compact('expected', 'got', 'format', 'timestamp', 'lang'); } } } return $result; }