本文整理汇总了PHP中DateTimeZone::GetOffset方法的典型用法代码示例。如果您正苦于以下问题:PHP DateTimeZone::GetOffset方法的具体用法?PHP DateTimeZone::GetOffset怎么用?PHP DateTimeZone::GetOffset使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DateTimeZone
的用法示例。
在下文中一共展示了DateTimeZone::GetOffset方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: TimeZone
public function TimeZone($decalage)
{
$languageTimeZones = self::LangueFuseaux();
$langagesAcceptes = explode(",", $_SERVER["HTTP_ACCEPT_LANGUAGE"]);
$scores = array();
$scoreMax = 0;
$fuseauHoraire = 'UTC';
$timeStamp = time();
$dateTime = new DateTime();
$dateTime->SetTimeStamp($timeStamp);
$dateTime->SetTimeZone(new DateTimeZone('UTC'));
// Pour chaque langue acceptée.
while (list($i, $langage) = each($langagesAcceptes)) {
$coeff = 1 - 0.1 * intval($i);
$pos = stripos($langage, ';');
if ($pos !== false) {
$langage = substr($langage, 0, $pos);
}
$langage = strtolower($langage);
if (array_key_exists($langage, $languageTimeZones)) {
$fuseaux = $languageTimeZones[$langage];
// Pour chaque fuseaux de la langue.
while (list($i, $fuseau) = each($fuseaux)) {
$dateTimeZone = new DateTimeZone($fuseau);
// Si le décalage horaire est le même que celui passé en argument.
if ($dateTimeZone->GetOffset($dateTime) == $decalage) {
if (!array_key_exists($fuseau, $scores)) {
$scores[$fuseau] = 0;
}
// Augmentation du score de probabilité du fuseau.
$scores[$fuseau] += $coeff;
// Si le score du fuseau devient le plus grand c'est le nouveau fuseau dominant.
if ($scoreMax < $scores[$fuseau]) {
$scoreMax = $scores[$fuseau];
$fuseauHoraire = $fuseau;
}
}
unset($dateTimeZone);
}
}
}
unset($languageTimeZones);
// Si on n'a pas trouvé un fuseau horaire par l'algo intelligent, on prend le premier qui correspond au décalage.
if ($fuseauHoraire == 'UTC') {
$fuseaux = timezone_abbreviations_list();
foreach ($fuseaux as $fuseau) {
foreach ($fuseau as $ville) {
if ($ville['offset'] == $decalage) {
$fuseauHoraire = $ville['timezone_id'];
return $fuseauHoraire;
}
}
}
}
return $fuseauHoraire;
}