OSDN Git Service

Big update to iDB timezone system. (php5 datetime instance)
authorKazuki Przyborowski <kazuki.przyborowski@gmail.com>
Tue, 18 Aug 2015 08:02:39 +0000 (03:02 -0500)
committerKazuki Przyborowski <kazuki.przyborowski@gmail.com>
Tue, 18 Aug 2015 08:02:39 +0000 (03:02 -0500)
37 files changed:
inc/admin/main.php
inc/admin/members.php
inc/admin/sqldumper/mysql.php
inc/admin/sqldumper/pgsql.php
inc/admin/sqldumper/sqlite.php
inc/calendars.php
inc/categories.php
inc/endpage.php
inc/events.php
inc/forums.php
inc/groupsetup.php
inc/lowreplies.php
inc/lowtopics.php
inc/members.php
inc/messages.php
inc/misc/ibbcode.php
inc/misc/setcheck.php
inc/navbar.php
inc/prelogin.php
inc/profilemain.php
inc/replies.php
inc/rssfeed.php
inc/searches.php
inc/stats.php
inc/subcategories.php
inc/subforums.php
inc/topics.php
inc/versioninfo.php
install.php
setup/mkconfig.php
setup/preinstall.php
setup/setup.php
setup/sql/cubrid.php
setup/sql/mysql.php
setup/sql/pgsql.php
setup/sql/sqlite.php
sql.php

index bbc94b9..b234ddb 100644 (file)
@@ -111,7 +111,7 @@ if($Settings['vercheck']!=1&&
        $Settings['vercheck']!=2) {
        $Settings['vercheck'] = 2; }
 if(!isset($Settings['start_date'])) {
-       $Settings['start_date'] = GMTimeStamp(); }
+       $Settings['start_date'] = $utccurtime->getTimestamp(); }
 if(!isset($Settings['SQLThemes'])) {
        $Settings['SQLThemes'] = 'off'; }
 if($Settings['SQLThemes']!="on"&&
@@ -140,7 +140,7 @@ if(!isset($Settings['idb_date_format'])) {
 <?php 
 require($SettDir['admin'].'table.php'); 
 if($_GET['act']=="delsessions"&&$GroupInfo['ViewDBInfo']=="yes") {
-$time = GMTimeStamp() - ini_get("session.gc_maxlifetime");
+$time = $utccurtime->getTimestamp() - ini_get("session.gc_maxlifetime");
 //$sqlg = sql_pre_query('DELETE FROM \"'.$Settings['sqltable'].'sessions\" WHERE \"expires\" < UNIX_TIMESTAMP();', array(null));
 $sqlgc = sql_pre_query("DELETE FROM \"".$Settings['sqltable']."sessions\" WHERE \"expires\" < %i", array($time));
 sql_query($sqlgc,$SQLStat);
@@ -190,7 +190,6 @@ $BoardSettings=$pretext2[0]."\n".
 "\$Settings['TestReferer'] = ".null_string($Settings['TestReferer']).";\n".
 "\$Settings['DefaultTheme'] = ".null_string($Settings['DefaultTheme']).";\n".
 "\$Settings['DefaultTimeZone'] = ".null_string($Settings['DefaultTimeZone']).";\n".
-"\$Settings['DefaultDST'] = ".null_string($Settings['DefaultDST']).";\n".
 "\$Settings['start_date'] = ".null_string($Settings['start_date']).";\n".
 "\$Settings['idb_time_format'] = ".null_string($Settings['idb_time_format']).";\n".
 "\$Settings['idb_date_format'] = ".null_string($Settings['idb_date_format']).";\n".
@@ -321,7 +320,7 @@ echo "<option value=\"".$themelist[$it]."\">".$themelist[$it]."</option>\n"; }
 </div>
 <?php } ftp_close($conn_id); }
 if($_GET['act']=="resyncthemes"&&$GroupInfo['ViewDBInfo']=="yes"&&$Settings['SQLThemes']=="on") {
-$time = GMTimeStamp() - ini_get("session.gc_maxlifetime");
+$time = $utccurtime->getTimestamp() - ini_get("session.gc_maxlifetime");
 //$sqlg = sql_pre_query('DELETE FROM \"'.$Settings['sqltable'].'sessions\" WHERE \"expires\" < UNIX_TIMESTAMP();', array(null));
 if($Settings['sqltype']=="mysql"||
        $Settings['sqltype']=="mysqli"||
@@ -473,15 +472,6 @@ $admincptitle = " ".$ThemeSet['TitleDivider']." Admin CP";
 </div>
 <?php } if($_GET['act']=="settings"&&$_POST['update']!="now") {
 $admincptitle = " ".$ThemeSet['TitleDivider']." Settings Manager";
-$ts_array = explode(":",$Settings['DefaultTimeZone']);
-if(count($ts_array)!=2) {
-       if(!isset($ts_array[0])) { $ts_array[0] = "0"; }
-       if(!isset($ts_array[1])) { $ts_array[1] = "00"; }
-       $Settings['DefaultTimeZone'] = $ts_array[0].":".$ts_array[1]; }
-if(!is_numeric($ts_array[0])) { $ts_array[0] = "0"; }
-if(!is_numeric($ts_array[1])) { $ts_array[1] = "00"; }
-if($ts_array[1]<0) { $ts_array[1] = "00"; $Settings['DefaultTimeZone'] = $ts_array[0].":".$ts_array[1]; }
-$tsa = array("offset" => $Settings['DefaultTimeZone'], "hour" => $ts_array[0], "minute" => $ts_array[1]);
 $mguerys = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."groups\" WHERE (\"Name\"<>'%s') ORDER BY \"id\" ASC", array("Admin"));
 $mgresults=sql_query($mguerys,$SQLStat);
 $mnum=sql_num_rows($mgresults);
@@ -496,6 +486,83 @@ if($Settings['vercheck']===2) {
 $AdminCheckURL = url_maker($exfile['admin'],$Settings['file_ext'],"act=vercheck&vercheck=newtype&redirect=on",$Settings['qstr'],$Settings['qsep'],$prexqstr['admin'],$exqstr['admin']); }
 $AddChkURL = null;
 if(isset($_GET['menu'])&&$_GET['menu']=="main") { $AddChkURL = "&menu=main"; }
+// http://www.tutorialspoint.com/php/php_function_timezone_identifiers_list.htm
+$timezone_identifiers = DateTimeZone::listIdentifiers();
+//$timezone_identifiers = timezone_identifiers_list();
+$zonelist['africa'] = array();
+$zonelist['america'] = array();
+$zonelist['antarctica'] = array();
+$zonelist['asia'] = array();
+$zonelist['atlantic'] = array();
+$zonelist['australia'] = array();
+$zonelist['europe'] = array();
+$zonelist['indian'] = array();
+$zonelist['pacific'] = array();
+$zonelist['etcetera'] = array();
+for ($i=0; $i < count($timezone_identifiers); $i++) {
+    $zonelookup = explode("/", $timezone_identifiers[$i]);
+    if(count($zonelookup)==1) { array_push($zonelist['etcetera'], array($timezone_identifiers[$i], $timezone_identifiers[$i])); }
+    if(count($zonelookup)>1) { 
+        if($zonelookup[0]=="Africa") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['africa'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['africa'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="America") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['america'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['america'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Antarctica") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['antarctica'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['antarctica'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Asia") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['asia'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['asia'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Atlantic") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['atlantic'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['atlantic'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Australia") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['australia'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['australia'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Europe") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['europe'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['europe'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Indian") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['indian'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['indian'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Pacific") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['pacific'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['pacific'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+    }
+}
+
+$deftzstarttime = new DateTime();
+$deftzstarttime->setTimestamp($Settings['start_date']);
+$deftzstarttime->setTimezone($deftz);
+$utctzstarttime = new DateTime();
+$utctzstarttime->setTimestamp($Settings['start_date']);
+$utctzstarttime->setTimezone($utctz);
+$servtzstarttime = new DateTime();
+$servtzstarttime->setTimestamp($Settings['start_date']);
+$servtzstarttime->setTimezone($servtz);
+$usertzstarttime = new DateTime();
+$usertzstarttime->setTimestamp($Settings['start_date']);
+$usertzstarttime->setTimezone($usertz);
 ?>
 <div class="TableMenuBorder">
 <?php if($ThemeSet['TableStyle']=="div") { ?>
@@ -521,11 +588,10 @@ if(isset($_GET['menu'])&&$_GET['menu']=="main") { $AddChkURL = "&menu=main"; }
 <table style="text-align: left;">
 <tr>
        <td style="width: 50%;"><span class="TextBoxLabel" title="Using User Time Zone">[User TimeZone] Install Date:</span></td>
-       <td style="width: 50%;"><?php echo GMTimeChange($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat'],$Settings['start_date'],$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']); ?></td>
-</tr><?php if($_SESSION['UserTimeZone']!=$Settings['DefaultTimeZone']||
-       $_SESSION['UserDST']!=$Settings['DefaultDST']) { ?><tr>
+       <td style="width: 50%;"><?php echo $usertzstarttime->format($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat']); ?></td>
+</tr><?php if($_SESSION['UserTimeZone']!=$Settings['DefaultTimeZone']) { ?><tr>
        <td style="width: 50%;"><span class="TextBoxLabel" title="Using Board Time Zone">[Board TimeZone] Install Date:</span></td>
-       <td style="width: 50%;"><?php echo GMTimeChange($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat'],$Settings['start_date'],$Settings['DefaultTimeZone'],0,$Settings['DefaultDST']); ?></td>
+       <td style="width: 50%;"><?php echo $deftzstarttime->format($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat']); ?></td>
 </tr><?php } if($GroupInfo['ViewDBInfo']=="yes") { 
 ?><tr style="text-align: left;">
        <td style="width: 50%;"><span class="TextBoxLabel">Forum Software Version:</span></td>
@@ -725,46 +791,96 @@ while ($gi < $gnum) { ?>
        </select></td>
 </tr><tr style="text-align: left;">
        <td style="width: 50%;"><label class="TextBoxLabel" for="YourOffSet">Your TimeZone:</label></td>
-       <td style="width: 50%;"><select id="YourOffSet" name="YourOffSet" class="TextBox"><?php
-$myofftime = $tsa['hour']; $mydstime = "off";
-$plusi = 1; $minusi = 12;
-$plusnum = 15; $minusnum = 0;
-while ($minusi > $minusnum) {
-if($myofftime==-$minusi) {
-echo "<option selected=\"selected\" value=\"-".$minusi."\">GMT - ".$minusi.":00 hours</option>\n"; }
-if($myofftime!=-$minusi) {
-echo "<option value=\"-".$minusi."\">GMT - ".$minusi.":00 hours</option>\n"; }
---$minusi; }
-if($myofftime==0) { ?>
-<option selected="selected" value="0">GMT +/- 0:00 hours</option>
-<?php } if($myofftime!=0) { ?>
-<option value="0">GMT +/- 0:00 hours</option>
-<?php }
-while ($plusi < $plusnum) {
-if($myofftime==$plusi) {
-echo "<option selected=\"selected\" value=\"".$plusi."\">GMT + ".$plusi.":00 hours</option>\n"; }
-if($myofftime!=$plusi) {
-echo "<option value=\"".$plusi."\">GMT + ".$plusi.":00 hours</option>\n"; }
-++$plusi; }
-?></select></td>
-</tr><tr style="text-align: left;">
-       <td style="width: 50%;"><label class="TextBoxLabel" for="MinOffSet">Minute OffSet:</label></td>
-       <td style="width: 50%;"><select id="MinOffSet" name="MinOffSet" class="TextBox"><?php
-$mini = 0; $minnum = 60; $mymin = $tsa['minute'];
-while ($mini < $minnum) {
-if(strlen($mini)==2) { $showmin = $mini; }
-if(strlen($mini)==1) { $showmin = "0".$mini; }
-if($mini==$mymin) {
-echo "\n<option selected=\"selected\" value=\"".$showmin."\">0:".$showmin." minutes</option>\n"; }
-if($mini!=$mymin) {
-echo "<option value=\"".$showmin."\">0:".$showmin." minutes</option>\n"; }
-++$mini; }
-?></select></td>
-</tr><tr style="text-align: left;">
-       <td style="width: 50%;"><label class="TextBoxLabel" for="DST">Is <span title="Daylight Savings Time">DST</span> / <span title="Summer Time">ST</span> on or off:</label></td>
-       <td style="width: 50%;"><select id="DST" name="DST" class="TextBox"><?php echo "\n" ?>
-<option<?php if($Settings['DefaultDST']=="off") { echo " selected=\"selected\""; } ?> value="off">off</option>
-<option<?php if($Settings['DefaultDST']=="on") { echo " selected=\"selected\""; } ?> value="on">on</option>
+       <td style="width: 50%;"><select id="YourOffSet" name="YourOffSet" class="TextBox">
+<optgroup label="Africa">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['africa']); $i++) {
+    if($Settings['DefaultTimeZone']==$zonelist['africa'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['africa'][$i][1]."\">".str_replace("_", " ", $zonelist['africa'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="America">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['america']); $i++) {
+    if($Settings['DefaultTimeZone']==$zonelist['america'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['america'][$i][1]."\">".str_replace("_", " ", $zonelist['america'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Antarctica">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['antarctica']); $i++) {
+    if($Settings['DefaultTimeZone']==$zonelist['antarctica'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['antarctica'][$i][1]."\">".str_replace("_", " ", $zonelist['antarctica'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Asia">
+<?php
+for ($i=0; $i < count($zonelist['asia']); $i++) {
+    if($Settings['DefaultTimeZone']==$zonelist['asia'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['asia'][$i][1]."\">".str_replace("_", " ", $zonelist['asia'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Atlantic">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['atlantic']); $i++) {
+    if($Settings['DefaultTimeZone']==$zonelist['atlantic'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['atlantic'][$i][1]."\">".str_replace("_", " ", $zonelist['atlantic'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Australia">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['australia']); $i++) {
+    if($Settings['DefaultTimeZone']==$zonelist['australia'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['australia'][$i][1]."\">".str_replace("_", " ", $zonelist['australia'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Europe">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['europe']); $i++) {
+    if($Settings['DefaultTimeZone']==$zonelist['europe'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['europe'][$i][1]."\">".str_replace("_", " ", $zonelist['europe'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Indian">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['indian']); $i++) {
+    if($Settings['DefaultTimeZone']==$zonelist['indian'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['indian'][$i][1]."\">".str_replace("_", " ", $zonelist['indian'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Pacific">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['pacific']); $i++) {
+    if($Settings['DefaultTimeZone']==$zonelist['pacific'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['pacific'][$i][1]."\">".str_replace("_", " ", $zonelist['pacific'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Etcetera">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['etcetera']); $i++) {
+    if($Settings['DefaultTimeZone']==$zonelist['etcetera'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['etcetera'][$i][1]."\">".str_replace("_", " ", $zonelist['etcetera'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
 </select></td>
 </tr><tr style="text-align: left;">
        <td style="width: 50%;"><label class="TextBoxLabel" for="DefaultTheme">Default Theme:</label></td>
@@ -949,8 +1065,7 @@ $BoardSettings=$pretext2[0]."\n".
 "\$Settings['AdminValidate'] = ".null_string($_POST['AdminValidate']).";\n".
 "\$Settings['TestReferer'] = ".null_string($_POST['TestReferer']).";\n".
 "\$Settings['DefaultTheme'] = ".null_string($_POST['DefaultTheme']).";\n".
-"\$Settings['DefaultTimeZone'] = ".null_string($_POST['YourOffSet'].":".$_POST['MinOffSet']).";\n".
-"\$Settings['DefaultDST'] = ".null_string($_POST['DST']).";\n".
+"\$Settings['DefaultTimeZone'] = ".null_string($_POST['YourOffSet']).";\n".
 "\$Settings['start_date'] = ".null_string($Settings['start_date']).";\n".
 "\$Settings['idb_time_format'] = ".null_string($Settings['idb_time_format']).";\n".
 "\$Settings['idb_date_format'] = ".null_string($Settings['idb_date_format']).";\n".
@@ -1135,7 +1250,6 @@ $BoardSettings=$pretext2[0]."\n".
 "\$Settings['TestReferer'] = ".null_string($Settings['TestReferer']).";\n".
 "\$Settings['DefaultTheme'] = ".null_string($Settings['DefaultTheme']).";\n".
 "\$Settings['DefaultTimeZone'] = ".null_string($Settings['DefaultTimeZone']).";\n".
-"\$Settings['DefaultDST'] = ".null_string($Settings['DefaultDST']).";\n".
 "\$Settings['start_date'] = ".null_string($Settings['start_date']).";\n".
 "\$Settings['idb_time_format'] = ".null_string($Settings['idb_time_format']).";\n".
 "\$Settings['idb_date_format'] = ".null_string($Settings['idb_date_format']).";\n".
@@ -1299,7 +1413,6 @@ $BoardSettings=$pretext2[0]."\n".
 "\$Settings['TestReferer'] = ".null_string($Settings['TestReferer']).";\n".
 "\$Settings['DefaultTheme'] = ".null_string($Settings['DefaultTheme']).";\n".
 "\$Settings['DefaultTimeZone'] = ".null_string($Settings['DefaultTimeZone']).";\n".
-"\$Settings['DefaultDST'] = ".null_string($Settings['DefaultDST']).";\n".
 "\$Settings['start_date'] = ".null_string($Settings['start_date']).";\n".
 "\$Settings['idb_time_format'] = ".null_string($Settings['idb_time_format']).";\n".
 "\$Settings['idb_date_format'] = ".null_string($Settings['idb_date_format']).";\n".
index f1e1a31..9644555 100644 (file)
@@ -366,9 +366,12 @@ $EditMem['HiddenMember']=sql_result($result,0,"HiddenMember");
 $EditMem['WarnLevel']=sql_result($result,0,"WarnLevel");
 $EditMem['BanTime']=sql_result($result,0,"BanTime");
 if($EditMem['BanTime']!=""&&$EditMem['BanTime']>1) {
-$BanMonth=GMTimeChange("m",$EditMem['BanTime'],0,0,"off");
-$BanDay=GMTimeChange("d",$EditMem['BanTime'],0,0,"off");
-$BanYear=GMTimeChange("Y",$EditMem['BanTime'],0,0,"off");
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($EditMem['BanTime']);
+$tmpusrcurtime->setTimezone($utctz);
+$BanMonth=$tmpusrcurtime->format("m");
+$BanDay=$tmpusrcurtime->format("d");
+$BanYear=$tmpusrcurtime->format("Y");
 $EditMem['BanTime'] = $BanMonth."/".$BanDay."/".$BanYear; }
 $EditMem['Interests']=sql_result($result,0,"Interests");
 $EditMem['Signature']=sql_result($result,0,"Signature");
@@ -743,9 +746,12 @@ if(!is_numeric($_POST['MemKarma'])) { $_POST['MemKarma'] = "0"; }
        if(pre_strlen($BirthExpl[1])=="1") { $BirthExpl[1] = "0".$BirthExpl[1]; }
        if(pre_strlen($BirthExpl[0])=="2"&&pre_strlen($BirthExpl[1])=="2"&&pre_strlen($BirthExpl[2])=="4") {
        $BirthIn = mktime(12,12,12,$BirthExpl[0],$BirthExpl[1],$BirthExpl[2]);
-       $BirthMonth=GMTimeChange("m",$BirthIn,0,0,"off");
-       $BirthDay=GMTimeChange("d",$BirthIn,0,0,"off");
-       $BirthYear=GMTimeChange("Y",$BirthIn,0,0,"off"); 
+       $tmpusrcurtime = new DateTime();
+       $tmpusrcurtime->setTimestamp($BirthIn);
+       $tmpusrcurtime->setTimezone($utctz);
+       $BirthMonth=$tmpusrcurtime->format("m");
+       $BirthDay=$tmpusrcurtime->format("d");
+       $BirthYear=$tmpusrcurtime->format("Y"); 
        $_POST['MemBanTime'] = $BirthIn; }
        if(pre_strlen($BirthExpl[0])!="2"||pre_strlen($BirthExpl[1])!="2"||pre_strlen($BirthExpl[2])!="4") { 
                $_POST['MemBanTime'] = "0"; $BirthMonth="0"; $BirthDay="0"; $BirthYear="0"; } }
index 52bd907..02e2ee5 100644 (file)
@@ -158,7 +158,7 @@ $sqldump .= "-- version ".$VerInfo['iDB_Ver_SVN']."\n";
 $sqldump .= "-- ".$iDBHome."support/\n";
 $sqldump .= "--\n";
 $sqldump .= "-- Host: ".$Settings['sqlhost']."\n";
-$sqldump .= "-- Generation Time: ".GMTimeGet('F d, Y \a\t h:i A',$_SESSION['UserTimeZone'],0,$_SESSION['UserDST'])."\n";
+$sqldump .= "-- Generation Time: ".$usercurtime->format('F d, Y \a\t h:i A')."\n";
 $sqldump .= "-- Server version: ".sql_server_info($SQLStat)."\n";
 $sqldump .= "-- PHP Version: ".phpversion()."\n\n";
 $sqldump .= "SET SESSION SQL_MODE='ANSI_QUOTES,NO_AUTO_VALUE_ON_ZERO';\n\n";
index b27a4e3..0d29bb0 100644 (file)
@@ -143,7 +143,7 @@ $sqldump .= "-- version ".$VerInfo['iDB_Ver_SVN']."\n";
 $sqldump .= "-- ".$iDBHome."support/\n";
 $sqldump .= "--\n";
 $sqldump .= "-- Host: ".$Settings['sqlhost']."\n";
-$sqldump .= "-- Generation Time: ".GMTimeGet('F d, Y \a\t h:i A',$_SESSION['UserTimeZone'],0,$_SESSION['UserDST'])."\n";
+$sqldump .= "-- Generation Time: ".$usercurtime->format('F d, Y \a\t h:i A')."\n";
 $sqldump .= "-- Server version: ".sql_server_info($SQLStat)."\n";
 $sqldump .= "-- PHP Version: ".phpversion()."\n\n";
 $sqldump .= "--\n";
index 6fb8224..8ea1888 100644 (file)
@@ -132,7 +132,7 @@ $sqldump = "-- ".$OrgName." ".$SQLDumper."\n";
 $sqldump .= "-- version ".$VerInfo['iDB_Ver_SVN']."\n";
 $sqldump .= "-- ".$iDBHome."support/\n";
 $sqldump .= "--\n";
-$sqldump .= "-- Generation Time: ".GMTimeGet('F d, Y \a\t h:i A',$_SESSION['UserTimeZone'],0,$_SESSION['UserDST'])."\n";
+$sqldump .= "-- Generation Time: ".$usercurtime->format('F d, Y \a\t h:i A')."\n";
 $sqldump .= "-- SQLite Server version: ".sql_server_info($SQLStat)."\n";
 $sqldump .= "-- PHP Version: ".phpversion()."\n\n";
 $sqldump .= "--\n";
index 7a6c848..abd13a8 100644 (file)
@@ -25,12 +25,15 @@ $_SESSION['ViewingFile'] = $exfile['calendar']; }
 $_SESSION['PreViewingTitle'] = "Viewing";
 $_SESSION['ViewingTitle'] = "Calendar";
 $_SESSION['ExtraData'] = "currentact:view; currentcategoryid:0; currentforumid:0; currenttopicid:0; currentmessageid:0; currenteventid:0; currentmemberid:0;";
+$calcurtime = new DateTime();
+$calcurtime->setTimestamp($defcurtime->getTimestamp());
+$calcurtime->setTimezone($usertz);
 if(!isset($_GET['HighligtDay'])) { $_GET['HighligtDay'] = null; }
 if(!isset($_GET['calmadd'])) { $_GET['calmadd'] = 0; }
 if(!is_numeric($_GET['calmadd'])) { $_GET['calmadd'] = 0; }
 if((!isset($_GET['calmonth']) && !isset($_GET['calyear'])) && 
 isset($_GET['caldate']) && strlen($_GET['caldate'])==2) {
-$_GET['caldate'] = $_GET['caldate'].GMTimeGet("Y",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST'],$calmounthaddd); }
+$_GET['caldate'] = $_GET['caldate'].$calcurtime->format("Y"); }
 if((!isset($_GET['calmonth']) && !isset($_GET['calyear'])) && 
 isset($_GET['caldate']) && strlen($_GET['caldate'])==6) {
 preg_match_all("/([0-9]{2})([0-9]{4})/is", $_GET['caldate'], $datecheck);
@@ -39,16 +42,16 @@ $_GET['calyear'] = $datecheck[2][0]; }
 if((isset($_GET['calmonth']) && isset($_GET['calyear'])) && 
    (strlen($_GET['calmonth'])==2&&strlen($_GET['calyear'])==4) ) {
 $year1 = date("Y", strtotime($_GET['calyear']."-".$_GET['calmonth']."-01"));
-$year2 = date("Y", GMTimeStamp());
+$year2 = date("Y", $utccurtime->getTimestamp());
 $month1 = date("m", strtotime($_GET['calyear']."-".$_GET['calmonth']."-01"));
-$month2 = date("m", GMTimeStamp());
+$month2 = date("m", $utccurtime->getTimestamp());
 $redirdate = ((($year2 - $year1) * 12) + ($month2 - $month1)) * -1;
 $_GET['calmadd'] = $redirdate; }
 $nextcalm = $_GET['calmadd'] + 1;
 $backcalm = $_GET['calmadd'] - 1;
 $calmcount = abs($_GET['calmadd']);
-$getcurmonth = GMTimeGet("m",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
-$getcuryear = GMTimeGet("y",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$getcurmonth = $usercurtime->format("m");
+$getcuryear = $usercurtime->format("y");
 $getcurtmsp = mktime(0, 0, 0, $getcmonth, 1, $getcyear);
 $getnextmsp = mktime(0, 0, 0, ($getcurmonth + $nextcalm), 1, $getcuryear);
 $nexmonthnum = date("m", $getnextmsp);
@@ -63,8 +66,9 @@ $tmpcalmadd = 0;
 $tmpcalcount = 1;
 if($_GET['calmadd']>0) {
 while($tmpcalcount <= $calmcount) {
-$tmpdaystart = GMTimeGet("d",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST'],$tmpcalmadd);
-$tmpdaycount = GMTimeGet("t",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST'],$tmpcalmadd);
+$calcurtime->setTimestamp($defcurtime->getTimestamp()+$tmpcalmadd);
+$tmpdaystart = $calcurtime->format("d");
+$tmpdaycount = $calcurtime->format("t");
 if($tmpdaystart>=1) { $tmpcalmnum += ($tmpdaycount - $tmpdaystart) + 1; }
 if($tmpdaystart<1) { $tmpcalmnum += $tmpdaycount; }
 $tmpcalmadd = $tmpcalmnum * $dayconv['day'];
@@ -72,31 +76,33 @@ $tmpcalmadd = $tmpcalmnum * $dayconv['day'];
 $calmounthaddd = $tmpcalmadd; }
 if($_GET['calmadd']<0) {
 while($tmpcalcount <= $calmcount) {
-$tmpdaystart = GMTimeGet("d",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST'],$tmpcalmadd);
-$tmpdaycount = GMTimeGet("t",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST'],$tmpcalmadd);
+$calcurtime->setTimestamp($defcurtime->getTimestamp()+$tmpcalmadd);
+$tmpdaystart = $calcurtime->format("d");
+$tmpdaycount = $calcurtime->format("t");
 if($tmpdaystart>=1) { $tmpcalmnum -= $tmpdaystart + 1; }
 if($tmpdaystart<1) { $tmpcalmnum -= $tmpdaycount; }
 $tmpcalmadd = $tmpcalmnum * $dayconv['day'];
 ++$tmpcalcount; }
 $calmounthaddd = $tmpcalmadd; }
 // Extra month stuff
-$MyRealMonthNum1 = GMTimeGet("m",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
-$MyRealYear = GMTimeGet("Y",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$MyRealMonthNum1 = $usercurtime->format("m");
+$MyRealYear = $usercurtime->format("Y");
 // Count the Days in this month
-$MyTimeStamp = GMTimeStamp() + $calmounthaddd;
-$CountDays = GMTimeGet("t",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST'],$calmounthaddd);
-$MyDay = GMTimeGet("j",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST'],$calmounthaddd);
-$MyDay2 = GMTimeGet("jS",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST'],$calmounthaddd);
-$MyDayNum = GMTimeGet("d",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST'],$calmounthaddd);
-$MyDayName = GMTimeGet("l",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST'],$calmounthaddd);
-$MyYear = GMTimeGet("Y",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST'],$calmounthaddd);
-$MyYear2 = GMTimeGet("y",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST'],$calmounthaddd);
-$MyMonth = GMTimeGet("m",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST'],$calmounthaddd);
+$MyTimeStamp = $utccurtime->getTimestamp() + $calmounthaddd;
+$calcurtime->setTimestamp($defcurtime->getTimestamp()+$calmounthaddd);
+$CountDays = $calcurtime->format("t");
+$MyDay = $calcurtime->format("j");
+$MyDay2 = $calcurtime->format("jS");
+$MyDayNum = $calcurtime->format("d");
+$MyDayName = $calcurtime->format("l");
+$MyYear = $calcurtime->format("Y");
+$MyYear2 = $calcurtime->format("y");
+$MyMonth = $calcurtime->format("m");
 $MyTimeStamp1 = mktime(0,0,0,$MyMonth,1,$MyYear);
 $MyTimeStamp2 = mktime(23,59,59,$MyMonth,$CountDays,$MyYear);
-$MyMonthName = GMTimeGet("F",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST'],$calmounthaddd);
-$MyMonthNum1 = GMTimeGet("m",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST'],$calmounthaddd);
-$MyMonthNum2 = GMTimeGet("n",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST'],$calmounthaddd);
+$MyMonthName = $calcurtime->format("F");
+$MyMonthNum1 = $calcurtime->format("m");
+$MyMonthNum2 = $calcurtime->format("n");
 $FirstDayThisMonth = date("w", mktime(0, 0, 0, $MyMonth, 1, $MyYear));
 $EventsName = array();
 $query = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."events\" WHERE (\"EventMonth\">=%i AND \"EventYear\"<%i AND \"EventYearEnd\">=%i) OR (\"EventMonth\"<=%i AND \"EventMonthEnd\">=%i AND \"EventYearEnd\">=%i) OR (\"EventMonth\"<=%i AND \"EventMonthEnd\"<=%i AND \"EventYear\"<=%i AND \"EventYearEnd\">%i)",  array($MyMonth,$MyYear,$MyYear,$MyMonth,$MyMonth,$MyYear,$MyMonth,$MyMonth,$MyYear,$MyYear));
@@ -111,18 +117,24 @@ $EventName=sql_result($result,$is,"EventName");
 $EventText=sql_result($result,$is,"EventText");
 $EventStart=sql_result($result,$is,"TimeStamp");
 $EventEnd=sql_result($result,$is,"TimeStampEnd");
+$eventstartcurtime = new DateTime();
+$eventstartcurtime->setTimestamp($EventStart);
+$eventstartcurtime->setTimezone($usertz);
+$eventendcurtime = new DateTime();
+$eventendcurtime->setTimestamp($EventEnd);
+$eventendcurtime->setTimezone($usertz);
 //$EventMonth=sql_result($result,$is,"EventMonth");
-$EventMonth=GMTimeChange("m",$EventStart,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$EventMonth=$eventstartcurtime->format("m");
 //$EventMonthEnd=sql_result($result,$is,"EventMonthEnd");
-$EventMonthEnd=GMTimeChange("m",$EventEnd,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$EventMonthEnd=$eventendcurtime->format("m");
 //$EventDay=sql_result($result,$is,"EventDay");
-$EventDay=GMTimeChange("j",$EventStart,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$EventDay=$eventstartcurtime->format("j");
 //$EventDayEnd=sql_result($result,$is,"EventDayEnd");
-$EventDayEnd=GMTimeChange("j",$EventEnd,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$EventDayEnd=$eventendcurtime->format("j");
 //$EventYear=sql_result($result,$is,"EventYear");
-$EventYear=GMTimeChange("Y",$EventStart,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$EventYear=$eventstartcurtime->format("Y");
 //$EventYearEnd=sql_result($result,$is,"EventYearEnd");
-$EventYearEnd=GMTimeChange("Y",$EventEnd,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$EventYearEnd=$eventendcurtime->format("Y");
 if($EventMonthEnd!=$MyMonth) { $EventDayEnd = $CountDays; }
 if($EventMonth<$MyMonth) { $EventDay = 1; }
 $oldeventname=$EventName;
index 6e753a9..418c9ca 100644 (file)
@@ -206,7 +206,10 @@ $ReplyID=sql_result($glrresult,0,"id");
 $UsersID=sql_result($glrresult,0,"UserID");
 $GuestsName=sql_result($glrresult,0,"GuestName");
 $TimeStamp=sql_result($glrresult,0,"TimeStamp");
-$TimeStamp=GMTimeChange($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat'],$TimeStamp,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($TimeStamp);
+$tmpusrcurtime->setTimezone($usertz);
+$TimeStamp=$tmpusrcurtime->format($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat']);
 sql_free_result($glrresult); }
 $PreUsersName = GetUserName($UsersID,$Settings['sqltable'],$SQLStat);
 if($PreUsersName['Name']===null) { $UsersID = -1;
index 7ab9e21..e8e3771 100644 (file)
@@ -19,13 +19,9 @@ if ($File3Name=="endpage.php"||$File3Name=="/endpage.php") {
        exit(); }
 if(!isset($_GET['time'])) { $_GET['time'] = true; }
 if($_GET['time']=="show"||$_GET['time']==true) {
-if($_SESSION['UserDST']=="on") { $MyDST = $checktimea['hour']+1; }
-if($_SESSION['UserDST']=="off") { $MyDST = $checktimea['hour']; }
-if($MyDST>=0) { $TimeSign = "+"; }
-if($MyDST<0) { $TimeSign = "-"; $MyDST = abs($MyDST); }
-$MyDST = $MyDST.":".$checktimea['minute'];
-$MyTimeNow = GMTimeGet($_SESSION['iDBTimeFormat'],$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
-$MyFullTimeNow = GMTimeGet($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat'],$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$MyDST = $usercurtime->format("P");
+$MyTimeNow = $usercurtime->format($_SESSION['iDBTimeFormat']);
+$MyFullTimeNow = $usercurtime->format($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat']);
 $endpagevar=$endpagevar."<br />The time now is <span class=\"ctimenow\" title=\"".$MyFullTimeNow."\">".$MyTimeNow."</span> ".$ThemeSet['LineDivider']." All times are UTC ".$TimeSign." ".$MyDST; }
 function execution_time($starttime) {
 list($uetime, $etime) = explode(" ", microtime());
index 8ec7d0d..0757a96 100644 (file)
@@ -39,8 +39,14 @@ $EventName=sql_result($result,$is,"EventName");
 $EventText=sql_result($result,$is,"EventText");
 $EventStart=sql_result($result,$is,"TimeStamp");
 $EventEnd=sql_result($result,$is,"TimeStampEnd");
-$EventStart = GMTimeChange($_SESSION['iDBDateFormat'],$EventStart,null);
-$EventEnd = GMTimeChange($_SESSION['iDBDateFormat'],$EventEnd,null);
+$eventstartcurtime = new DateTime();
+$eventstartcurtime->setTimestamp($EventStart);
+$eventstartcurtime->setTimezone($usertz);
+$EventStart = $eventstartcurtime->format($_SESSION['iDBDateFormat']);
+$eventendcurtime = new DateTime();
+$eventendcurtime->setTimestamp($EventEnd);
+$eventendcurtime->setTimezone($usertz);
+$EventEnd = $eventendcurtime->format($_SESSION['iDBDateFormat']);
 $ipshow = "two";
 $_SESSION['ViewingPage'] = url_maker(null,"no+ext","act=view&id=".$_GET['id'],"&","=",$prexqstr['event'],$exqstr['event']);
 if($Settings['file_ext']!="no+ext"&&$Settings['file_ext']!="no ext") {
@@ -78,7 +84,10 @@ if($PreUserCanUseBBags!="yes"&&$PreUserCanUseBBags!="no"&&$PreUserCanUseBBags!="
        $PreUserCanUseBBags = "no"; }
 sql_free_result($memreresult);
 $User1Joined=sql_result($reresult,$rei,"Joined");
-$User1Joined=GMTimeChange($_SESSION['iDBDateFormat'],$User1Joined,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($User1Joined);
+$tmpusrcurtime->setTimezone($usertz);
+$User1Joined=$tmpusrcurtime->format($_SESSION['iDBDateFormat']);
 $User1GroupID=sql_result($reresult,$rei,"GroupID");
 $gquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."groups\" WHERE \"id\"=%i LIMIT 1", array($User1GroupID));
 $gresult=sql_query($gquery,$SQLStat);
@@ -697,12 +706,18 @@ redirect("refresh",$rbasedir.url_maker($exfile['index'],$Settings['file_ext'],"a
 <?php } if ($Error!="Yes") { 
 $TimeSIn = mktime(0,0,0,$TimeIn[0],$TimeIn[1],$TimeIn[2]);
 $TimeSOut = mktime(23,59,59,$TimeOut[0],$TimeOut[1],$TimeOut[2]);
-$EventMonth=GMTimeChange("m",$TimeSIn,0,0,"off");
-$EventMonthEnd=GMTimeChange("m",$TimeSOut,0,0,"off");
-$EventDay=GMTimeChange("d",$TimeSIn,0,0,"off");
-$EventDayEnd=GMTimeChange("d",$TimeSOut,0,0,"off");
-$EventYear=GMTimeChange("Y",$TimeSIn,0,0,"off");
-$EventYearEnd=GMTimeChange("Y",$TimeSOut,0,0,"off");
+$eventstartcurtime = new DateTime();
+$eventstartcurtime->setTimestamp($TimeSIn);
+$eventstartcurtime->setTimezone($utctz);
+$eventendcurtime = new DateTime();
+$eventendcurtime->setTimestamp($TimeSOut);
+$eventendcurtime->setTimezone($utctz);
+$EventMonth=$eventstartcurtime->format("m");
+$EventMonthEnd=$eventendcurtime->format("m");
+$EventDay=$eventstartcurtime->format("d");
+$EventDayEnd=$eventendcurtime->format("d");
+$EventYear=$eventstartcurtime->format("Y");
+$EventYearEnd=$eventendcurtime->format("Y");
 $User1ID=$MyUserID;
 $User1IP=$_SERVER['REMOTE_ADDR'];
 if($_SESSION['UserGroup']==$Settings['GuestGroup']) { $User1Name = $_POST['GuestName']; }
index 56cb536..0ec7164 100644 (file)
@@ -180,7 +180,10 @@ $ReplyID=sql_result($glrresult,0,"id");
 $UsersID=sql_result($glrresult,0,"UserID");
 $GuestsName=sql_result($glrresult,0,"GuestName");
 $TimeStamp=sql_result($glrresult,0,"TimeStamp");
-$TimeStamp=GMTimeChange($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat'],$TimeStamp,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($TimeStamp);
+$tmpusrcurtime->setTimezone($usertz);
+$TimeStamp=$tmpusrcurtime->format($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat']);
 sql_free_result($glrresult); }
 $PreUsersName = GetUserName($UsersID,$Settings['sqltable'],$SQLStat);
 if($PreUsersName['Name']===null) { $UsersID = -1;
index 860d488..5310e99 100644 (file)
@@ -59,12 +59,11 @@ $Settings['max_topics'] = $MyTopicsPerPage;
 $MyMessagesPerPage=sql_result($resultchkusr,0,"MessagesPerPage");
 $Settings['max_memlist'] = $MyMessagesPerPage;
 $Settings['max_pmlist'] = $MyMessagesPerPage;
-$ChkUsrDST=sql_result($resultchkusr,0,"DST");
 $svrquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."groups\" WHERE \"id\"=%i LIMIT 1", array($ChkUsrGroup));
 $svrgresultkgb=sql_query($svrquery,$SQLStat);
 $ChkUsrGroup=sql_result($svrgresultkgb,0,"Name"); 
 $ChkUsrBanTime=sql_result($resultchkusr,0,"BanTime");
-$ChkUsrGMTime = GMTimeStamp();
+$ChkUsrGMTime = $utccurtime->getTimestamp();
 if($ChkUsrBanTime!=0&&$ChkUsrBanTime!=null) {
 if($ChkUsrBanTime>=$ChkUsrGMTime) { $BanError = "yes"; }
 if($ChkUsrBanTime<0) { $BanError = "yes"; } }
@@ -74,30 +73,32 @@ $_SESSION['MemberName']=$ChkUsrName;
 $_SESSION['UserID']=$ChkUsrID;
 $_SESSION['UserIP']=$_SERVER['REMOTE_ADDR'];
 $_SESSION['UserTimeZone']=$ChkUsrTimeZone;
+$usertz = new DateTimeZone($_SESSION['UserTimeZone']);
+$usercurtime->setTimestamp($defcurtime->getTimestamp());
+$usercurtime->setTimezone($usertz);
 $_SESSION['iDBDateFormat']=$ChkUsrDateFormat;
 $_SESSION['iDBTimeFormat']=$ChkUsrTimeFormat;
 $_SESSION['UserGroup']=$ChkUsrGroup;
 $_SESSION['UserGroupID']=$ChkUsrGroupID;
-$_SESSION['UserDST']=$ChkUsrDST;
 $_SESSION['UserPass']=$ChkUsrPass;
 $_SESSION['LastPostTime'] = $ChkUsrLastPostTime; } }
 if($numchkusr<=0||$numchkusr>1||$BanError=="yes") { session_unset();
 if($cookieDomain==null) {
-setcookie("MemberName", null, GMTimeStamp() - 3600, $cbasedir);
-setcookie("UserID", null, GMTimeStamp() - 3600, $cbasedir);
-setcookie("SessPass", null, GMTimeStamp() - 3600, $cbasedir);
-setcookie(session_name(), "", GMTimeStamp() - 3600, $cbasedir); }
+setcookie("MemberName", null, $utccurtime->getTimestamp() - 3600, $cbasedir);
+setcookie("UserID", null, $utccurtime->getTimestamp() - 3600, $cbasedir);
+setcookie("SessPass", null, $utccurtime->getTimestamp() - 3600, $cbasedir);
+setcookie(session_name(), "", $utccurtime->getTimestamp() - 3600, $cbasedir); }
 if($cookieDomain!=null) {
 if($cookieSecure===true) {
-setcookie("MemberName", null, GMTimeStamp() - 3600, $cbasedir, $cookieDomain, 1);
-setcookie("UserID", null, GMTimeStamp() - 3600, $cbasedir, $cookieDomain, 1);
-setcookie("SessPass", null, GMTimeStamp() - 3600, $cbasedir, $cookieDomain, 1);
-setcookie(session_name(), "", GMTimeStamp() - 3600, $cbasedir, $cookieDomain, 1); }
+setcookie("MemberName", null, $utccurtime->getTimestamp() - 3600, $cbasedir, $cookieDomain, 1);
+setcookie("UserID", null, $utccurtime->getTimestamp() - 3600, $cbasedir, $cookieDomain, 1);
+setcookie("SessPass", null, $utccurtime->getTimestamp() - 3600, $cbasedir, $cookieDomain, 1);
+setcookie(session_name(), "", $utccurtime->getTimestamp() - 3600, $cbasedir, $cookieDomain, 1); }
 if($cookieSecure===false) {
-setcookie("MemberName", null, GMTimeStamp() - 3600, $cbasedir, $cookieDomain);
-setcookie("UserID", null, GMTimeStamp() - 3600, $cbasedir, $cookieDomain);
-setcookie("SessPass", null, GMTimeStamp() - 3600, $cbasedir, $cookieDomain);
-setcookie(session_name(), "", GMTimeStamp() - 3600, $cbasedir, $cookieDomain); } }
+setcookie("MemberName", null, $utccurtime->getTimestamp() - 3600, $cbasedir, $cookieDomain);
+setcookie("UserID", null, $utccurtime->getTimestamp() - 3600, $cbasedir, $cookieDomain);
+setcookie("SessPass", null, $utccurtime->getTimestamp() - 3600, $cbasedir, $cookieDomain);
+setcookie(session_name(), "", $utccurtime->getTimestamp() - 3600, $cbasedir, $cookieDomain); } }
 unset($_COOKIE[session_name()]);
 $_SESSION = array(); session_unset(); session_destroy();
 redirect("location",$rbasedir.url_maker($exfile['member'],$Settings['file_ext'],"act=login",$Settings['qstr'],$Settings['qsep'],$prexqstr['member'],$exqstr['member'],false)); sql_free_result($resultchkusr); sql_free_result($svrgresultkgb);
@@ -253,7 +254,7 @@ if(!isset($Settings['KBoostPercent'])) {
 //Update karma and group upgrade on post count or karma count.
 if($_SESSION['UserID']!=0) { $BoostTotal = null;
 $KarmaExp = explode("&",$Settings['KarmaBoostDays']);
-$KarmaNow = GMTimeGet("md",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$KarmaNow = $usercurtime->format("md");
 $kupdate = false;
 if(in_array($KarmaNow,$KarmaExp)) {
 $KarmaNum = count($KarmaExp); 
@@ -265,8 +266,8 @@ $kupdate = true; break 1; }
 ++$Karmai; } }
 if($kupdate===false) {
 $Settings['KarmaBoostDays'] = $KarmaExp[0]; }
-$NewKarmaUpdate = GMTimeGet("Ymd",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
-$ThisYearUpdate = GMTimeGet("Y",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$NewKarmaUpdate = $usercurtime->format("Ymd");
+$ThisYearUpdate = $usercurtime->format("Y");
 if($MyKarmaUpdate<$NewKarmaUpdate&&$MyPostCountChk>0) { 
        $KarmaBoostDay = $Settings['KarmaBoostDays'];
        $KBoostPercent = explode("|",$Settings['KBoostPercent']);
index 164e593..87abe54 100644 (file)
@@ -263,7 +263,10 @@ $MyTimeStamp=sql_result($result,$i,"TimeStamp");
 $MyEditTime=sql_result($result,$i,"LastUpdate");
 $MyEditUserID=sql_result($result,$i,"EditUser");
 $MyEditUserName=sql_result($result,$i,"EditUserName");
-$MyTimeStamp=GMTimeChange($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat'],$MyTimeStamp,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($MyTimeStamp);
+$tmpusrcurtime->setTimezone($usertz);
+$MyTimeStamp=$tmpusrcurtime->format($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat']);
 $MyPost=sql_result($result,$i,"Post");
 $MyDescription=sql_result($result,$i,"Description");
 $requery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."members\" WHERE \"id\"=%i LIMIT 1", array($MyUserID));
@@ -294,7 +297,10 @@ if($PreUserCanUseBBags!="yes"&&$PreUserCanUseBBags!="no"&&$PreUserCanUseBBags!="
        $PreUserCanUseBBags = "no"; }
 sql_free_result($memreresult);
 $User1Joined=sql_result($reresult,$rei,"Joined");
-$User1Joined=GMTimeChange($_SESSION['iDBDateFormat'],$User1Joined,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($User1Joined);
+$tmpusrcurtime->setTimezone($usertz);
+$User1Joined=$tmpusrcurtime->format($_SESSION['iDBDateFormat']);
 $User1GroupID=sql_result($reresult,$rei,"GroupID");
 $gquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."groups\" WHERE \"id\"=%i LIMIT 1", array($User1GroupID));
 $gresult=sql_query($gquery,$SQLStat);
@@ -391,7 +397,10 @@ $eunum = sql_num_rows($euresult); }
                $EditUserName = $EditUserNamePrefix.$EditUserName; }
        if(isset($GroupNameSuffix)&&$GroupNameSuffix!=null) {
                $EditUserName = $EditUserName.$EditUserNameSuffix; }
-       $MyEditTime = GMTimeChange($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat'],$MyEditTime,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+       $tmpusrcurtime = new DateTime();
+       $tmpusrcurtime->setTimestamp($MyEditTime);
+       $tmpusrcurtime->setTimezone($usertz);
+       $MyEditTime = $tmpusrcurtime->format($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat']);
        $MySubPost = "<div class=\"EditReply\"><br />This post has been edited by <b>".$EditUserName."</b> on ".$MyEditTime."</div>"; }
 if($MyEditTime!=$MyTimeStamp&&$MyEditUserID!=0&&$MyEditUserID!=$MyUserID) {
 $requery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."members\" WHERE \"id\"=%i LIMIT 1", array($MyUserID));
@@ -405,7 +414,10 @@ if($User1IP==$MyPostIP) { $ipshow = "one"; }
 $User1Email=sql_result($reresult,$rei,"Email");
 $User1Title=sql_result($reresult,$rei,"Title");
 $User1Joined=sql_result($reresult,$rei,"Joined");
-$User1Joined=GMTimeChange($_SESSION['iDBDateFormat'],$User1Joined,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($User1Joined);
+$tmpusrcurtime->setTimezone($usertz);
+$User1Joined=$tmpusrcurtime->format($_SESSION['iDBDateFormat']);
 $User1Hidden=sql_result($reresult,$rei,"HiddenMember");
 $User1GroupID=sql_result($reresult,$rei,"GroupID");
 $gquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."groups\" WHERE \"id\"=%i LIMIT 1", array($User1GroupID));
index 466f5ed..1039338 100644 (file)
@@ -255,7 +255,10 @@ $OldForumID=sql_result($result,$i,"OldForumID");
 $UsersID=sql_result($result,$i,"UserID");
 $GuestsName=sql_result($result,$i,"GuestName");
 $TheTime=sql_result($result,$i,"TimeStamp");
-$TheTime=GMTimeChange($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat'],$TheTime,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($TheTime);
+$tmpusrcurtime->setTimezone($usertz);
+$TheTime=$tmpusrcurtime->format($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat']);
 $NumReply=sql_result($result,$i,"NumReply");
 $NumberPosts=$NumReply + 1;
 $prepagelist = null;
index fa47d54..2f30575 100644 (file)
@@ -73,9 +73,9 @@ if($_GET['groupid']!=null) {
 $query = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."members\" WHERE \"GroupID\"=%i AND \"GroupID\"<>%i AND \"id\">=0 ".$orderlist." ".$SQLimit, array($_GET['groupid'],$GGroup,$PageLimit,$Settings['max_memlist'])); 
 $rnquery = sql_pre_query("SELECT COUNT(*) FROM \"".$Settings['sqltable']."members\" WHERE \"GroupID\"=%i AND \"GroupID\"<>%i AND \"id\">=0", array($_GET['groupid'],$GGroup)); } }
 if($_GET['act']=="getactive") {
-$active_month = GMTimeGet("m",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
-$active_day = GMTimeGet("d",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
-$active_year = GMTimeGet("Y",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$active_month = $usercurtime->format("m");
+$active_day = $usercurtime->format("d");
+$active_year = $usercurtime->format("Y");
 $active_start = mktime(0,0,0,$active_month,$active_day,$active_year);
 $active_end = mktime(23,59,59,$active_month,$active_day,$active_year);
 if($_GET['groupid']==null) {
@@ -223,9 +223,15 @@ $MemList['WarnLevel']=sql_result($result,$i,"WarnLevel");
 $MemList['Interests']=sql_result($result,$i,"Interests");
 $MemList['Title']=sql_result($result,$i,"Title");
 $MemList['Joined']=sql_result($result,$i,"Joined");
-$MemList['Joined']=GMTimeChange($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat'],$MemList['Joined'],$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($MemList['Joined']);
+$tmpusrcurtime->setTimezone($usertz);
+$MemList['Joined']=$tmpusrcurtime->format($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat']);
 $MemList['LastActive']=sql_result($result,$i,"LastActive");
-$MemList['LastActive']=GMTimeChange($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat'],$MemList['LastActive'],$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($MemList['LastActive']);
+$tmpusrcurtime->setTimezone($usertz);
+$MemList['LastActive']=$tmpusrcurtime->format($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat']);
 $MemList['Website']=sql_result($result,$i,"Website");
 if($MemList['Website']=="http://") { 
        $MemList['Website'] = $Settings['idburl']; }
@@ -239,7 +245,6 @@ $MemList['Gender']=sql_result($result,$i,"Gender");
 $MemList['PostCount']=sql_result($result,$i,"PostCount");
 $MemList['Karma']=sql_result($result,$i,"Karma");
 $MemList['TimeZone']=sql_result($result,$i,"TimeZone");
-$MemList['DST']=sql_result($result,$i,"DST");
 $MemList['IP']=sql_result($result,$i,"IP");
 $gquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."groups\" WHERE \"id\"=%i LIMIT 1", array($MemList['GroupID']));
 $gresult=sql_query($gquery,$SQLStat);
@@ -294,7 +299,7 @@ $nums = $_GET['page'] * $Settings['max_memlist'];
 $PageLimit = $nums - $Settings['max_memlist'];
 if($PageLimit<0) { $PageLimit = 0; }
 $i=0;
-$uolcuttime = GMTimeStamp();
+$uolcuttime = $utccurtime->getTimestamp();
 $uoltime = $uolcuttime - ini_get("session.gc_maxlifetime");
 if($_GET['list']=="members") {
 $query = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."sessions\" WHERE \"expires\" >= %i AND \"serialized_data\" NOT LIKE '%s' ORDER BY \"expires\" DESC ".$SQLimit, array($uoltime,"%UserGroup|s:".strlen($Settings['GuestGroup']).":\"".$Settings['GuestGroup']."\";%",$PageLimit,$Settings['max_memlist'])); 
@@ -440,7 +445,10 @@ $serialized_data=sql_result($result,$i,"serialized_data");
 $session_user_agent=sql_result($result,$i,"user_agent"); 
 $session_ip_address=sql_result($result,$i,"ip_address"); 
 $session_expires=sql_result($result,$i,"expires"); 
-$session_expires = GMTimeChange($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat'],$session_expires,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($session_expires);
+$tmpusrcurtime->setTimezone($usertz);
+$session_expires = $tmpusrcurtime->format($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat']);
 if(isset($UserSessInfo)) { $UserSessInfo = null; }
 //$UserSessInfo = unserialize_session($session_data);
 $UserSessInfo = unserialize($serialized_data);
@@ -462,9 +470,15 @@ $ViewSessMem['GroupID']=sql_result($sess_result,$sess_i,"GroupID");
 $ViewSessMem['HiddenMember']=sql_result($sess_result,$sess_i,"HiddenMember");
 $ViewSessMem['WarnLevel']=sql_result($sess_result,$sess_i,"WarnLevel");
 $ViewSessMem['Joined']=sql_result($sess_result,$sess_i,"Joined");
-$ViewSessMem['Joined']=GMTimeChange("M j Y, ".$_SESSION['iDBTimeFormat'],$ViewSessMem['Joined'],$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($ViewSessMem['Joined']);
+$tmpusrcurtime->setTimezone($usertz);
+$ViewSessMem['Joined']=$tmpusrcurtime->format("M j Y, ".$_SESSION['iDBTimeFormat']);
 $ViewSessMem['LastActive']=sql_result($sess_result,$sess_i,"LastActive");
-$ViewSessMem['LastActive']=GMTimeChange("M j Y, ".$_SESSION['iDBTimeFormat'],$ViewSessMem['LastActive'],$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($ViewSessMem['LastActive']);
+$tmpusrcurtime->setTimezone($usertz);
+$ViewSessMem['LastActive']=$tmpusrcurtime->format("M j Y, ".$_SESSION['iDBTimeFormat']);
 $ViewSessMem['Website']=sql_result($sess_result,$sess_i,"Website");
 if($ViewSessMem['Website']=="http://") { 
        $ViewSessMem['Website'] = $Settings['idburl']; }
@@ -478,7 +492,6 @@ $ViewSessMem['Gender']=sql_result($sess_result,$sess_i,"Gender");
 $ViewSessMem['PostCount']=sql_result($sess_result,$sess_i,"PostCount");
 $ViewSessMem['Karma']=sql_result($sess_result,$sess_i,"Karma");
 $ViewSessMem['TimeZone']=sql_result($sess_result,$sess_i,"TimeZone");
-$ViewSessMem['DST']=sql_result($sess_result,$sess_i,"DST");
 $ViewSessMem['IP']=sql_result($sess_result,$sess_i,"IP");
 $gsess_query = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."groups\" WHERE \"id\"=%i LIMIT 1", array($ViewSessMem['GroupID']));
 $gsess_result=sql_query($gsess_query,$SQLStat);
@@ -674,9 +687,15 @@ $ViewMem['WarnLevel']=sql_result($result,$i,"WarnLevel");
 $ViewMem['Interests']=sql_result($result,$i,"Interests");
 $ViewMem['Title']=sql_result($result,$i,"Title");
 $ViewMem['Joined']=sql_result($result,$i,"Joined");
-$ViewMem['Joined']=GMTimeChange("M j Y, ".$_SESSION['iDBTimeFormat'],$ViewMem['Joined'],$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($ViewMem['Joined']);
+$tmpusrcurtime->setTimezone($usertz);
+$ViewMem['Joined']=$tmpusrcurtime->format("M j Y, ".$_SESSION['iDBTimeFormat']);
 $ViewMem['LastActive']=sql_result($result,$i,"LastActive");
-$ViewMem['LastActive']=GMTimeChange("M j Y, ".$_SESSION['iDBTimeFormat'],$ViewMem['LastActive'],$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($ViewMem['LastActive']);
+$tmpusrcurtime->setTimezone($usertz);
+$ViewMem['LastActive']=$tmpusrcurtime->format("M j Y, ".$_SESSION['iDBTimeFormat']);
 $ViewMem['Website']=sql_result($result,$i,"Website");
 if($ViewMem['Website']=="http://") { 
        $ViewMem['Website'] = $Settings['idburl']; }
@@ -690,7 +709,8 @@ $ViewMem['Gender']=sql_result($result,$i,"Gender");
 $ViewMem['PostCount']=sql_result($result,$i,"PostCount");
 $ViewMem['Karma']=sql_result($result,$i,"Karma");
 $ViewMem['TimeZone']=sql_result($result,$i,"TimeZone");
-$ViewMem['DST']=sql_result($result,$i,"DST");
+$viewmemcurtime = new DateTime();
+$viewmemcurtime->setTimezone($ViewMem['TimeZone']);
 $ViewMem['IP']=sql_result($result,$i,"IP");
 $lquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."levels\" WHERE \"id\"=%i LIMIT 1", array($ViewMem['LevelID']));
 $lresult=sql_query($lquery,$SQLStat);
@@ -794,7 +814,7 @@ Title: <?php echo $ViewMem['Title']; ?>
 &nbsp;User Level: <?php echo $ViewMem['Level']; ?><br />
 &nbsp;User Joined: <?php echo $ViewMem['Joined']; ?><br />
 &nbsp;Last Active: <?php echo $ViewMem['LastActive']; ?><br />
-&nbsp;User Time: <?php echo GMTimeGet("M j Y, ".$_SESSION['iDBTimeFormat'],$ViewMem['TimeZone'],0,$ViewMem['DST']); ?><br />
+&nbsp;User Time: <?php echo $viewmemcurtime->format("M j Y, ".$_SESSION['iDBTimeFormat']); ?><br />
 &nbsp;User Website: <a href="<?php echo $ViewMem['Website']; ?>"<?php echo $opennew; ?>>Website</a><br />
 &nbsp;Post Count: <?php echo $ViewMem['PostCount']; ?><br />
 &nbsp;Karma: <?php echo $ViewMem['Karma']; ?><br />
@@ -812,27 +832,27 @@ Title: <?php echo $ViewMem['Title']; ?>
 if($_GET['act']=="logout") {
 session_unset();
 if($cookieDomain==null) {
-setcookie("MemberName", null, GMTimeStamp() - 3600, $cbasedir);
-setcookie("UserID", null, GMTimeStamp() - 3600, $cbasedir);
-setcookie("SessPass", null, GMTimeStamp() - 3600, $cbasedir);
-setcookie(session_name(), "", GMTimeStamp() - 3600, $cbasedir); }
+setcookie("MemberName", null, $utccurtime->getTimestamp() - 3600, $cbasedir);
+setcookie("UserID", null, $utccurtime->getTimestamp() - 3600, $cbasedir);
+setcookie("SessPass", null, $utccurtime->getTimestamp() - 3600, $cbasedir);
+setcookie(session_name(), "", $utccurtime->getTimestamp() - 3600, $cbasedir); }
 if($cookieDomain!=null) {
 if($cookieSecure===true) {
-setcookie("MemberName", null, GMTimeStamp() - 3600, $cbasedir, $cookieDomain, 1);
-setcookie("UserID", null, GMTimeStamp() - 3600, $cbasedir, $cookieDomain, 1);
-setcookie("SessPass", null, GMTimeStamp() - 3600, $cbasedir, $cookieDomain, 1);
-setcookie(session_name(), "", GMTimeStamp() - 3600, $cbasedir, $cookieDomain, 1); }
+setcookie("MemberName", null, $utccurtime->getTimestamp() - 3600, $cbasedir, $cookieDomain, 1);
+setcookie("UserID", null, $utccurtime->getTimestamp() - 3600, $cbasedir, $cookieDomain, 1);
+setcookie("SessPass", null, $utccurtime->getTimestamp() - 3600, $cbasedir, $cookieDomain, 1);
+setcookie(session_name(), "", $utccurtime->getTimestamp() - 3600, $cbasedir, $cookieDomain, 1); }
 if($cookieSecure===false) {
-setcookie("MemberName", null, GMTimeStamp() - 3600, $cbasedir, $cookieDomain);
-setcookie("UserID", null, GMTimeStamp() - 3600, $cbasedir, $cookieDomain);
-setcookie("SessPass", null, GMTimeStamp() - 3600, $cbasedir, $cookieDomain);
-setcookie(session_name(), "", GMTimeStamp() - 3600, $cbasedir, $cookieDomain); } }
+setcookie("MemberName", null, $utccurtime->getTimestamp() - 3600, $cbasedir, $cookieDomain);
+setcookie("UserID", null, $utccurtime->getTimestamp() - 3600, $cbasedir, $cookieDomain);
+setcookie("SessPass", null, $utccurtime->getTimestamp() - 3600, $cbasedir, $cookieDomain);
+setcookie(session_name(), "", $utccurtime->getTimestamp() - 3600, $cbasedir, $cookieDomain); } }
 unset($_COOKIE[session_name()]);
 $_SESSION = array();
 //session_unset();
 //session_destroy();
 $temp_user_ip = $_SERVER['REMOTE_ADDR'];
-$exptime = GMTimeStamp() - ini_get("session.gc_maxlifetime");
+$exptime = $utccurtime->getTimestamp() - ini_get("session.gc_maxlifetime");
 sql_query(sql_pre_query("DELETE FROM \"".$Settings['sqltable']."sessions\" WHERE \"expires\" < %i OR ip_address='%s'", array($exptime,$temp_user_ip)),$SQLStat);
 redirect("location",$rbasedir.url_maker($exfile['member'],$Settings['file_ext'],"act=login",$Settings['qstr'],$Settings['qsep'],$prexqstr['member'],$exqstr['member'],false));
 ob_clean(); header("Content-Type: text/plain; charset=".$Settings['charset']); $urlstatus = 302;
@@ -1055,7 +1075,7 @@ $YourGroupM=sql_result($resultlog,$i,"GroupID");
 $YourGroupIDM=$YourGroupM;
 $YourLastPostTime=sql_result($resultlog,$i,"LastPostTime");
 $YourBanTime=sql_result($resultlog,$i,"BanTime");
-$CGMTime = GMTimeStamp();
+$CGMTime = $utccurtime->getTimestamp();
 if($YourBanTime!=0&&$YourBanTime!=null) {
 if($YourBanTime>=$CGMTime) { $BanError = "yes"; }
 if($YourBanTime<0) { $BanError = "yes"; } }
@@ -1064,7 +1084,6 @@ $gresult=sql_query($gquery,$SQLStat);
 $YourGroupM=sql_result($gresult,0,"Name");
 sql_free_result($gresult);
 $YourTimeZoneM=sql_result($resultlog,$i,"TimeZone");
-$YourDSTM=sql_result($resultlog,$i,"DST");
 $JoinedDate=sql_result($resultlog,$i,"Joined");
 $UseTheme=sql_result($resultlog,$i,"UseTheme");
 $NewHashSalt = salt_hmac();
@@ -1104,7 +1123,7 @@ if($Settings['use_hashtype']=="gost") { $iDBHash = "iDBHGOST";
 $NewPassword = b64e_hmac($_POST['userpass'],$JoinedPass,$NewHashSalt,"gost"); }
 if($Settings['use_hashtype']=="joaat") { $iDBHash = "iDBHJOAAT";
 $NewPassword = b64e_hmac($_POST['userpass'],$JoinedPass,$NewHashSalt,"joaat"); }
-$NewDay=GMTimeStamp();
+$NewDay=$utccurtime->getTimestamp();
 $NewIP=$_SERVER['REMOTE_ADDR'];
 if($BanError!="yes") {
 $queryup = sql_pre_query("UPDATE \"".$Settings['sqltable']."members\" SET \"UserPassword\"='%s',\"HashType\"='%s',\"LastActive\"=%i,\"IP\"='%s',\"Salt\"='%s' WHERE \"id\"=%i", array($NewPassword,$iDBHash,$NewDay,$NewIP,$NewHashSalt,$YourIDM));
@@ -1116,9 +1135,11 @@ $_SESSION['MemberName']=$YourNameM;
 $_SESSION['UserID']=$YourIDM;
 $_SESSION['UserIP']=$_SERVER['REMOTE_ADDR'];
 $_SESSION['UserTimeZone']=$YourTimeZoneM;
+$usertz = new DateTimeZone($_SESSION['UserTimeZone']);
+$usercurtime->setTimestamp($defcurtime->getTimestamp());
+$usercurtime->setTimezone($usertz);
 $_SESSION['UserGroup']=$YourGroupM;
 $_SESSION['UserGroupID']=$YourGroupIDM;
-$_SESSION['UserDST']=$YourDSTM;
 $_SESSION['UserPass']=$NewPassword;
 $_SESSION['LastPostTime'] = $YourLastPostTime;
 $_SESSION['DBName']=$Settings['sqldb'];
@@ -1178,6 +1199,70 @@ $_SESSION['ViewingTitle'] = "Signing up";
 $_SESSION['ExtraData'] = "currentact:".$_GET['act']."; currentcategoryid:0; currentforumid:0; currenttopicid:0; currentmessageid:0; currenteventid:0; currentmemberid:0;";
 $UFID = rand_uuid("rand");
 $_SESSION['UserFormID'] = $UFID;
+// http://www.tutorialspoint.com/php/php_function_timezone_identifiers_list.htm
+$timezone_identifiers = DateTimeZone::listIdentifiers();
+//$timezone_identifiers = timezone_identifiers_list();
+$zonelist['africa'] = array();
+$zonelist['america'] = array();
+$zonelist['antarctica'] = array();
+$zonelist['asia'] = array();
+$zonelist['atlantic'] = array();
+$zonelist['australia'] = array();
+$zonelist['europe'] = array();
+$zonelist['indian'] = array();
+$zonelist['pacific'] = array();
+$zonelist['etcetera'] = array();
+for ($i=0; $i < count($timezone_identifiers); $i++) {
+    $zonelookup = explode("/", $timezone_identifiers[$i]);
+    if(count($zonelookup)==1) { array_push($zonelist['etcetera'], array($timezone_identifiers[$i], $timezone_identifiers[$i])); }
+    if(count($zonelookup)>1) { 
+        if($zonelookup[0]=="Africa") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['africa'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['africa'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="America") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['america'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['america'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Antarctica") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['antarctica'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['antarctica'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Asia") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['asia'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['asia'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Atlantic") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['atlantic'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['atlantic'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Australia") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['australia'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['australia'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Europe") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['europe'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['europe'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Indian") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['indian'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['indian'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Pacific") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['pacific'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['pacific'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+    }
+}
 ?>
 <div class="NavLinks"><?php echo $ThemeSet['NavLinkIcon']; ?><a href="<?php echo url_maker($exfile['index'],$Settings['file_ext'],"act=view",$Settings['qstr'],$Settings['qsep'],$prexqstr['index'],$exqstr['index']); ?>"><?php echo $Settings['board_name']; ?></a><?php echo $ThemeSet['NavLinkDivider']; ?><a href="<?php echo url_maker($exfile['member'],$Settings['file_ext'],"act=signup",$Settings['qstr'],$Settings['qsep'],$prexqstr['member'],$exqstr['member']); ?>">Signup</a></div>
 <div class="DivNavLinks">&nbsp;</div>
@@ -1220,50 +1305,97 @@ $_SESSION['UserFormID'] = $UFID;
        <td style="width: 70%;"><input type="text" class="TextBox" name="Email" size="20" id="Email" /></td>
 </tr><tr>
        <td style="width: 30%;"><label class="TextBoxLabel" for="YourOffSet">Your TimeZone:</label></td>
-       <td style="width: 70%;"><select id="YourOffSet" name="YourOffSet" class="TextBox"><?php
-$tsa_mem = explode(":",$Settings['DefaultTimeZone']);
-$TimeZoneArray = array("offset" => $Settings['DefaultTimeZone'], "hour" => $tsa_mem[0], "minute" => $tsa_mem[1]);
-$plusi = 1; $minusi = 12;
-$plusnum = 15; $minusnum = 0;
-while ($minusi > $minusnum) {
-if($TimeZoneArray['hour']==-$minusi) {
-echo "<option selected=\"selected\" value=\"-".$minusi."\">UTC - ".$minusi.":00 hours</option>\n"; }
-if($TimeZoneArray['hour']!=-$minusi) {
-echo "<option value=\"-".$minusi."\">UTC - ".$minusi.":00 hours</option>\n"; }
---$minusi; }
-if($TimeZoneArray['hour']==0) { ?>
-<option selected="selected" value="0">UTC +/- 0:00 hours</option>
-<?php } if($TimeZoneArray['hour']!=0) { ?>
-<option value="0">UTC +/- 0:00 hours</option>
-<?php }
-while ($plusi < $plusnum) {
-if($TimeZoneArray['hour']==$plusi) {
-echo "<option selected=\"selected\" value=\"".$plusi."\">UTC + ".$plusi.":00 hours</option>\n"; }
-if($TimeZoneArray['hour']!=$plusi) {
-echo "<option value=\"".$plusi."\">UTC + ".$plusi.":00 hours</option>\n"; }
-++$plusi; }
-?></select></td>
-</tr><tr>
-       <td style="width: 50%;"><label class="TextBoxLabel" for="MinOffSet">Minute OffSet:</label></td>
-       <td style="width: 50%;"><select id="MinOffSet" name="MinOffSet" class="TextBox"><?php
-$mini = 0; $minnum = 60;
-while ($mini < $minnum) {
-if(strlen($mini)==2) { $showmin = $mini; }
-if(strlen($mini)==1) { $showmin = "0".$mini; }
-if($mini==$TimeZoneArray['minute']) {
-echo "\n<option selected=\"selected\" value=\"".$showmin."\">0:".$showmin." minutes</option>\n"; }
-if($mini!=$TimeZoneArray['minute']) {
-echo "<option value=\"".$showmin."\">0:".$showmin." minutes</option>\n"; }
-++$mini; }
-?></select></td>
-</tr><tr>
-       <td style="width: 30%;"><label class="TextBoxLabel" for="DST">Is <span title="Daylight Savings Time">DST</span> / <span title="Summer Time">ST</span> on or off:</label></td>
-       <td style="width: 70%;"><select id="DST" name="DST" class="TextBox"><?php echo "\n" ?>
-<?php if($Settings['DefaultDST']=="off"||$Settings['DefaultDST']!="on") { ?>
-<option selected="selected" value="off">off</option><?php echo "\n" ?><option value="on">on</option>
-<?php } if($Settings['DefaultDST']=="on") { ?>
-<option selected="selected" value="on">on</option><?php echo "\n" ?><option value="off">off</option>
-<?php } echo "\n" ?></select></td>
+       <td style="width: 70%;"><select id="YourOffSet" name="YourOffSet" class="TextBox">
+<optgroup label="Africa">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['africa']); $i++) {
+    if($Settings['DefaultTimeZone']==$zonelist['africa'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['africa'][$i][1]."\">".str_replace("_", " ", $zonelist['africa'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="America">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['america']); $i++) {
+    if($Settings['DefaultTimeZone']==$zonelist['america'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['america'][$i][1]."\">".str_replace("_", " ", $zonelist['america'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Antarctica">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['antarctica']); $i++) {
+    if($Settings['DefaultTimeZone']==$zonelist['antarctica'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['antarctica'][$i][1]."\">".str_replace("_", " ", $zonelist['antarctica'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Asia">
+<?php
+for ($i=0; $i < count($zonelist['asia']); $i++) {
+    if($Settings['DefaultTimeZone']==$zonelist['asia'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['asia'][$i][1]."\">".str_replace("_", " ", $zonelist['asia'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Atlantic">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['atlantic']); $i++) {
+    if($Settings['DefaultTimeZone']==$zonelist['atlantic'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['atlantic'][$i][1]."\">".str_replace("_", " ", $zonelist['atlantic'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Australia">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['australia']); $i++) {
+    if($Settings['DefaultTimeZone']==$zonelist['australia'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['australia'][$i][1]."\">".str_replace("_", " ", $zonelist['australia'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Europe">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['europe']); $i++) {
+    if($Settings['DefaultTimeZone']==$zonelist['europe'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['europe'][$i][1]."\">".str_replace("_", " ", $zonelist['europe'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Indian">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['indian']); $i++) {
+    if($Settings['DefaultTimeZone']==$zonelist['indian'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['indian'][$i][1]."\">".str_replace("_", " ", $zonelist['indian'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Pacific">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['pacific']); $i++) {
+    if($Settings['DefaultTimeZone']==$zonelist['pacific'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['pacific'][$i][1]."\">".str_replace("_", " ", $zonelist['pacific'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Etcetera">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['etcetera']); $i++) {
+    if($Settings['DefaultTimeZone']==$zonelist['etcetera'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['etcetera'][$i][1]."\">".str_replace("_", " ", $zonelist['etcetera'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+</select></td>
 </tr><tr>
        <td style="width: 30%;"><label class="TextBoxLabel" for="YourGender">Your Gender:</label></td>
        <td style="width: 70%;"><select id="YourGender" name="YourGender" class="TextBox">
@@ -1501,7 +1633,7 @@ redirect("refresh",$rbasedir.url_maker($exfile['member'],$Settings['file_ext'],"
 <?php } if ($Error!="Yes") {
 $_POST['UserIP'] = $_SERVER['REMOTE_ADDR'];
 $_POST['Group'] = $Settings['MemberGroup'];
-$_POST['Joined'] = GMTimeStamp(); $_POST['LastActive'] = GMTimeStamp();
+$_POST['Joined'] = $utccurtime->getTimestamp(); $_POST['LastActive'] = $utccurtime->getTimestamp();
 $_POST['Signature'] = ""; $_POST['Interests'] = "";
 $_POST['Title'] = ""; $_POST['PostCount'] = "0";
 if(!isset($Settings['AdminValidate'])) { $Settings['AdminValidate'] = "off"; }
@@ -1582,15 +1714,8 @@ sql_free_result($gresults);
 $_POST['Interests'] = remove_spaces($_POST['Interests']);
 $_POST['Title'] = remove_spaces($_POST['Title']);
 $_POST['Email'] = remove_spaces($_POST['Email']);
-if(!is_numeric($_POST['YourOffSet'])) { $_POST['YourOffSet'] = "0"; }
-if($_POST['YourOffSet']>12) { $_POST['YourOffSet'] = "12"; }
-if($_POST['YourOffSet']<-12) { $_POST['YourOffSet'] = "-12"; }
-if(!is_numeric($_POST['MinOffSet'])) { $_POST['MinOffSet'] = "00"; }
-if($_POST['MinOffSet']>59) { $_POST['MinOffSet'] = "59"; }
-if($_POST['MinOffSet']<0) { $_POST['MinOffSet'] = "00"; }
-$_POST['YourOffSet'] = $_POST['YourOffSet'].":".$_POST['MinOffSet'];
-$query = sql_pre_query("INSERT INTO \"".$Settings['sqltable']."members\" (\"Name\", \"UserPassword\", \"HashType\", \"Email\", \"GroupID\", \"LevelID\", \"Validated\", \"HiddenMember\", \"WarnLevel\", \"Interests\", \"Title\", \"Joined\", \"LastActive\", \"LastPostTime\", \"BanTime\", \"BirthDay\", \"BirthMonth\", \"BirthYear\", \"Signature\", \"Notes\", \"Avatar\", \"AvatarSize\", \"Website\", \"Gender\", \"PostCount\", \"Karma\", \"KarmaUpdate\", \"RepliesPerPage\", \"TopicsPerPage\", \"MessagesPerPage\", \"TimeZone\", \"DateFormat\", \"TimeFormat\", \"DST\", \"UseTheme\", \"IP\", \"Salt\") VALUES\n". 
-"('%s', '%s', '%s', '%s', '%s', '1', '%s', '%s', %i, '%s', '%s', %i, %i, '0', '0', '0', '0', '0', '%s', '%s', '%s', '%s', '%s', '%s', %i, 0, 0, 10, 10, 10, '%s', '%s', '%s', '%s', '%s', '%s', '%s')", array($Name,$NewPassword,$iDBHash,$_POST['Email'],$yourgroup,$ValidateStats,$HideMe,"0",$_POST['Interests'],$_POST['Title'],$_POST['Joined'],$_POST['LastActive'],$NewSignature,'Your Notes',$Avatar,"100x100",$Website,$_POST['YourGender'],$_POST['PostCount'],$_POST['YourOffSet'],$Settings['idb_date_format'],$Settings['idb_time_format'],$_POST['DST'],$Settings['DefaultTheme'],$_POST['UserIP'],$HashSalt));
+$query = sql_pre_query("INSERT INTO \"".$Settings['sqltable']."members\" (\"Name\", \"UserPassword\", \"HashType\", \"Email\", \"GroupID\", \"LevelID\", \"Validated\", \"HiddenMember\", \"WarnLevel\", \"Interests\", \"Title\", \"Joined\", \"LastActive\", \"LastPostTime\", \"BanTime\", \"BirthDay\", \"BirthMonth\", \"BirthYear\", \"Signature\", \"Notes\", \"Avatar\", \"AvatarSize\", \"Website\", \"Gender\", \"PostCount\", \"Karma\", \"KarmaUpdate\", \"RepliesPerPage\", \"TopicsPerPage\", \"MessagesPerPage\", \"TimeZone\", \"DateFormat\", \"TimeFormat\", \"UseTheme\", \"IP\", \"Salt\") VALUES\n". 
+"('%s', '%s', '%s', '%s', '%s', '1', '%s', '%s', %i, '%s', '%s', %i, %i, '0', '0', '0', '0', '0', '%s', '%s', '%s', '%s', '%s', '%s', %i, 0, 0, 10, 10, 10, '%s', '%s', '%s', '%s', '%s', '%s')", array($Name,$NewPassword,$iDBHash,$_POST['Email'],$yourgroup,$ValidateStats,$HideMe,"0",$_POST['Interests'],$_POST['Title'],$_POST['Joined'],$_POST['LastActive'],$NewSignature,'Your Notes',$Avatar,"100x100",$Website,$_POST['YourGender'],$_POST['PostCount'],$_POST['YourOffSet'],$Settings['idb_date_format'],$Settings['idb_time_format'],$Settings['DefaultTheme'],$_POST['UserIP'],$HashSalt));
 sql_query($query,$SQLStat);
 $yourid = sql_get_next_id($Settings['sqltable'],"members",$SQLStat);
 $idquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."members\" WHERE \"Name\"='%s' AND \"UserPassword\"='%s' AND \"Email\"='%s' AND \"IP\"='%s' AND \"Salt\"='%s' LIMIT 1", array($Name,$NewPassword,$_POST['Email'],$_POST['UserIP'],$HashSalt));
@@ -1630,8 +1755,7 @@ $gquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."groups\" WHERE
 $gresult=sql_query($gquery,$SQLStat);
 $YourGroupMr=sql_result($gresult,0,"Name");
 sql_free_result($gresult);
-$YourTimeZoneMr=sql_result($resultlogr,$ir,"TimeZone");
-$YourDSTMr=sql_result($resultlogr,$ir,"DST"); }
+$YourTimeZoneMr=sql_result($resultlogr,$ir,"TimeZone"); }
 sql_free_result($resultlogr);
 session_regenerate_id(true);
 $_SESSION['Loggedin']=true;
@@ -1639,7 +1763,9 @@ $_SESSION['MemberName']=$YourNameMr;
 $_SESSION['UserID']=$YourIDMr;
 $_SESSION['UserIP']=$_SERVER['REMOTE_ADDR'];
 $_SESSION['UserTimeZone']=$YourTimeZoneMr;
-$_SESSION['UserDST']=$YourDSTMr;
+$usertz = new DateTimeZone($_SESSION['UserTimeZone']);
+$usercurtime->setTimestamp($defcurtime->getTimestamp());
+$usercurtime->setTimezone($usertz);
 $_SESSION['UserGroup']=$YourGroupMr;
 $_SESSION['UserGroupID']=$YourGroupIDMr;
 $_SESSION['UserPass']=$NewPassword;
index d6d9b1a..430cd01 100644 (file)
@@ -205,7 +205,10 @@ $PMGuest=sql_result($result,$i,"GuestName");
 $MessageName=sql_result($result,$i,"MessageTitle");
 $MessageDesc=sql_result($result,$i,"Description");
 $DateSend=sql_result($result,$i,"DateSend");
-$DateSend=GMTimeChange($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat'],$DateSend,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($DateSend);
+$tmpusrcurtime->setTimezone($usertz);
+$DateSend=$tmpusrcurtime->format($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat']);
 $MessageStat=sql_result($result,$i,"Read");
 if($SenderName=="Guest") { $SenderName=$PMGuest;
 if($SenderName==null) { $SenderName="Guest"; } }
@@ -377,7 +380,10 @@ $PMGuest=sql_result($result,$i,"GuestName");
 $MessageName=sql_result($result,$i,"MessageTitle");
 $MessageDesc=sql_result($result,$i,"Description");
 $DateSend=sql_result($result,$i,"DateSend");
-$DateSend=GMTimeChange($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat'],$DateSend,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($DateSend);
+$tmpusrcurtime->setTimezone($usertz);
+$DateSend=$tmpusrcurtime->format($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat']);
 $MessageStat=sql_result($result,$i,"Read");
 if($SenderName=="Guest") { $SenderName=$PMGuest;
 if($SenderName==null) { $SenderName="Guest"; } }
@@ -434,7 +440,10 @@ $ReciverHidden = $PreReciverName['Hidden'];
 $PMGuest=sql_result($result,$is,"GuestName");
 $MessageName=sql_result($result,$is,"MessageTitle");
 $DateSend=sql_result($result,$is,"DateSend");
-$DateSend=GMTimeChange($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat'],$DateSend,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($DateSend);
+$tmpusrcurtime->setTimezone($usertz);
+$DateSend=$tmpusrcurtime->format($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat']);
 $MessageText=sql_result($result,$is,"MessageText");
 $MessageDesc=sql_result($result,$is,"Description");
 $ipshow = "two";
@@ -469,7 +478,10 @@ if($PreUserCanUseBBags!="yes"&&$PreUserCanUseBBags!="no"&&$PreUserCanUseBBags!="
        $PreUserCanUseBBags = "no"; }
 sql_free_result($memreresult);
 $User1Joined=sql_result($reresult,$rei,"Joined");
-$User1Joined=GMTimeChange($_SESSION['iDBDateFormat'],$User1Joined,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($User1Joined);
+$tmpusrcurtime->setTimezone($usertz);
+$User1Joined=$tmpusrcurtime->format($_SESSION['iDBDateFormat']);
 $User1LevelID=sql_result($reresult,$rei,"LevelID");
 $lquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."levels\" WHERE \"id\"=%i LIMIT 1", array($User1LevelID));
 $lresult=sql_query($lquery,$SQLStat);
@@ -1064,7 +1076,7 @@ redirect("refresh",$rbasedir.url_maker($exfile['index'],$Settings['file_ext'],"a
        <br />Click <a href="<?php echo url_maker($exfile['index'],$Settings['file_ext'],"act=view",$Settings['qstr'],$Settings['qsep'],$prexqstr['index'],$exqstr['index']); ?>">here</a> to goto index page.<br />&nbsp;
        </span><br /></td>
 </tr>
-<?php } if ($Error!="Yes") { $LastActive = GMTimeStamp();
+<?php } if ($Error!="Yes") { $LastActive = $utccurtime->getTimestamp();
 if($_SESSION['UserGroup']==$Settings['GuestGroup']) { $User1Name = $_POST['GuestName']; }
 if($_SESSION['UserGroup']!=$Settings['GuestGroup']) { $User1Name = $_SESSION['MemberName']; }
 $User1IP=$_SERVER['REMOTE_ADDR'];
index e58b78c..b67176f 100644 (file)
@@ -51,7 +51,7 @@ function bbcode_urlencode($matches) {
 function bbcode_urldecode($matches) { 
        return urldecode($matches[1]); }
 function bbcode_date_time($matches) { 
-       return GMTimeGet($matches[1],$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']); }
+       return $usercurtime->format($matches[1]); }
 function bbcode_random($matches) { 
        if(!isset($matches[2])) {
        return rand(0,$matches[1]); }
@@ -70,6 +70,9 @@ $matches[0] = preg_replace("/\[IMG\=(.*?)]([A-Za-z0-9\.\/%\?\!\$\(\)\*\-_\:;,\+\
 return $matches[0]; } }
 function bbcode_parser($text) {
 global $Settings;
+$usertz = new DateTimeZone($_SESSION['UserTimeZone']);
+$usercurtime = new DateTime();
+$usercurtime->setTimezone($usertz);
 $text = preg_replace("/\[EmbedVideo\=&quot;([A-Za-z0-9\.\-_]+)&quot;\]([A-Za-z0-9\.\-_]+)\[\/EmbedVideo\]/is", "[\\1]\\2[/\\1]", $text);
 $text = preg_replace("/\[EmbedVideo\=([A-Za-z0-9\.\-_]+)\]([A-Za-z0-9\.\-_]+)\[\/EmbedVideo\]/is", "[\\1]\\2[/\\1]", $text);
 $text = preg_replace("/\[EmbedMusic\=&quot;([A-Za-z0-9\.\-_]+)&quot;\]([A-Za-z0-9\.\-_]+)\[\/EmbedMusic\]/is", "[\\1]\\2[/\\1]", $text);
@@ -89,18 +92,18 @@ $text = preg_replace("/\[WebSiteURL\]/is", $Settings['weburl'], $text);
 $text = preg_replace("/\{BoardName\}/is", $Settings['board_name'], $text);
 $text = preg_replace("/\{BoardURL\}/is", $Settings['idburl'], $text);
 $text = preg_replace("/\{WebSiteURL\}/is", $Settings['weburl'], $text);
-$text = preg_replace("/\[DATE\]/is", GMTimeGet('M j Y',$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']), $text);
-//$text = preg_replace("/\[DATE\=(.*?)\]/is", GMTimeGet("${1}",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']), $text);
-$text = preg_replace("/\[TIME\]/is", GMTimeGet('g:i a',$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']), $text);
-//$text = preg_replace("/\[TIME\=(.*?)\]/is", GMTimeGet("${1}",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']), $text);
+$text = preg_replace("/\[DATE\]/is", $usercurtime->format('M j Y'), $text);
+//$text = preg_replace("/\[DATE\=(.*?)\]/is", $usercurtime->format("${1}"), $text);
+$text = preg_replace("/\[TIME\]/is", $usercurtime->format('g:i a'), $text);
+//$text = preg_replace("/\[TIME\=(.*?)\]/is", $usercurtime->format("${1}"), $text);
 $text = preg_replace_callback("/\[DATE\=&quot;(.*?)&quot;\]/is", "bbcode_date_time", $text);
 $text = preg_replace_callback("/\[TIME\=&quot;(.*?)&quot;\]/is", "bbcode_date_time", $text);
 $text = preg_replace_callback("/\[DATE\=(.*?)\]/is", "bbcode_date_time", $text);
 $text = preg_replace_callback("/\[TIME\=(.*?)\]/is", "bbcode_date_time", $text);
-$text = preg_replace("/\{DATE\}/is", GMTimeGet('g:i a',$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']), $text);
-//$text = preg_replace("/\{DATE\=(.*?)\}/is", GMTimeGet("${1}",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']), $text);
-$text = preg_replace("/\{TIME\}/is", GMTimeGet('M j Y',$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']), $text);
-//$text = preg_replace("/\{TIME\=(.*?)\}/is", GMTimeGet("${1}",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']), $text);
+$text = preg_replace("/\{DATE\}/is", $usercurtime->format('g:i a'), $text);
+//$text = preg_replace("/\{DATE\=(.*?)\}/is", $usercurtime->format("${1}"), $text);
+$text = preg_replace("/\{TIME\}/is", $usercurtime->format('M j Y'), $text);
+//$text = preg_replace("/\{TIME\=(.*?)\}/is", $usercurtime->format("${1}"), $text);
 $text = preg_replace_callback("/\{DATE\=&quot;(.*?)\"\}/is", "bbcode_date_time", $text);
 $text = preg_replace_callback("/\{TIME\=&quot;(.*?)\"\}/is", "bbcode_date_time", $text);
 $text = preg_replace_callback("/\[RAND\=&quot;([\-]?[0-9]+)&quot;\]/is", "bbcode_random", $text);
index 53b61b4..388f5fb 100644 (file)
@@ -81,10 +81,7 @@ $oldusername = null; $oldtopicname = null; $ext = null;
 if($Settings['DefaultTheme']==null) {
        $Settings['DefaultTheme'] = "iDB"; }
 if($Settings['DefaultTimeZone']==null) {
-       $Settings['DefaultTimeZone'] = SeverOffSet(null); }
-if($Settings['DefaultDST']!="on"&&
-       $Settings['DefaultDST']!="off") { 
-       $Settings['DefaultDST'] = "off"; }
+       $Settings['DefaultTimeZone'] = date_default_timezone_get(); }
 if(!isset($Settings['use_captcha'])) {
        $Settings['use_captcha'] = "off"; }
 if($Settings['use_captcha']!="on"&&
index 88d55a7..b52e5dd 100644 (file)
@@ -33,8 +33,8 @@ if($_SESSION['UserGroup']!=$Settings['GuestGroup']) {
 $PreAmIHidden = GetUserName($_SESSION['UserID'],$Settings['sqltable'],$SQLStat);
 $AmIHidden = $PreAmIHidden['Hidden']; }
 // Hide me from everyone! >_> ^_^ <_< 
-$NavBarCurMonth = GMTimeGet("m",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
-$NavBarCurYear = GMTimeGet("Y",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$NavBarCurMonth = $usercurtime->format("m");
+$NavBarCurYear = $usercurtime->format("Y");
 $NavBarCurDate = $NavBarCurMonth.$NavBarCurYear;
 ?>
 <div class="NavBorder">
index 39cb60b..92d978d 100644 (file)
@@ -38,11 +38,11 @@ $YourDSTAM=sql_result($resultlog2,0,"DST");
 $YourLastPostTime=sql_result($resultlog2,0,"LastPostTime");
 $YourBanTime=sql_result($resultlog2,0,"BanTime");
 sql_free_result($resultlog2);
-$CGMTime = GMTimeStamp();
+$CGMTime = $utccurtime->getTimestamp();
 if($YourBanTime!=0&&$YourBanTime!=null) {
 if($YourBanTime>=$CGMTime) { $BanError = "yes"; } 
 if($YourBanTime<0) { $BanError = "yes"; } }
-$NewDay=GMTimeStamp();
+$NewDay=$utccurtime->getTimestamp();
 $NewIP=$_SERVER['REMOTE_ADDR'];
 if($BanError!="yes") {
 $queryup = sql_pre_query("UPDATE \"".$Settings['sqltable']."members\" SET \"LastActive\"=%i,\"IP\"='%s' WHERE \"id\"=%i", array($NewDay,$NewIP,$YourIDAM));
@@ -74,25 +74,25 @@ setcookie("SessPass", $YourPassAM, time() + (7 * 86400), $cbasedir, $cookieDomai
 gzip_page($Settings['use_gzip'],$GZipEncode['Type']); session_write_close(); die();*/
 } } if($numlog2<=0||$numlog2>1||$BanError=="yes") { session_unset();
 if($cookieDomain==null) {
-setcookie("MemberName", null, GMTimeStamp() - 3600, $cbasedir);
-setcookie("UserID", null, GMTimeStamp() - 3600, $cbasedir);
-setcookie("SessPass", null, GMTimeStamp() - 3600, $cbasedir);
-setcookie(session_name(), "", GMTimeStamp() - 3600, $cbasedir); }
+setcookie("MemberName", null, $utccurtime->getTimestamp() - 3600, $cbasedir);
+setcookie("UserID", null, $utccurtime->getTimestamp() - 3600, $cbasedir);
+setcookie("SessPass", null, $utccurtime->getTimestamp() - 3600, $cbasedir);
+setcookie(session_name(), "", $utccurtime->getTimestamp() - 3600, $cbasedir); }
 if($cookieDomain!=null) {
 if($cookieSecure===true) {
-setcookie("MemberName", null, GMTimeStamp() - 3600, $cbasedir, $cookieDomain, 1);
-setcookie("UserID", null, GMTimeStamp() - 3600, $cbasedir, $cookieDomain, 1);
-setcookie("SessPass", null, GMTimeStamp() - 3600, $cbasedir, $cookieDomain, 1);
-setcookie(session_name(), "", GMTimeStamp() - 3600, $cbasedir, $cookieDomain, 1); }
+setcookie("MemberName", null, $utccurtime->getTimestamp() - 3600, $cbasedir, $cookieDomain, 1);
+setcookie("UserID", null, $utccurtime->getTimestamp() - 3600, $cbasedir, $cookieDomain, 1);
+setcookie("SessPass", null, $utccurtime->getTimestamp() - 3600, $cbasedir, $cookieDomain, 1);
+setcookie(session_name(), "", $utccurtime->getTimestamp() - 3600, $cbasedir, $cookieDomain, 1); }
 if($cookieSecure===false) {
-setcookie("MemberName", null, GMTimeStamp() - 3600, $cbasedir, $cookieDomain);
-setcookie("UserID", null, GMTimeStamp() - 3600, $cbasedir, $cookieDomain);
-setcookie("SessPass", null, GMTimeStamp() - 3600, $cbasedir, $cookieDomain);
-setcookie(session_name(), "", GMTimeStamp() - 3600, $cbasedir, $cookieDomain); } }
+setcookie("MemberName", null, $utccurtime->getTimestamp() - 3600, $cbasedir, $cookieDomain);
+setcookie("UserID", null, $utccurtime->getTimestamp() - 3600, $cbasedir, $cookieDomain);
+setcookie("SessPass", null, $utccurtime->getTimestamp() - 3600, $cbasedir, $cookieDomain);
+setcookie(session_name(), "", $utccurtime->getTimestamp() - 3600, $cbasedir, $cookieDomain); } }
 unset($_COOKIE[session_name()]);
 $_SESSION = array(); //session_unset(); session_destroy();
 $temp_user_ip = $_SERVER['REMOTE_ADDR'];
-$exptime = GMTimeStamp() - ini_get("session.gc_maxlifetime");
+$exptime = $utccurtime->getTimestamp() - ini_get("session.gc_maxlifetime");
 sql_query(sql_pre_query("DELETE FROM \"".$Settings['sqltable']."sessions\" WHERE \"expires\" < %i OR ip_address='%s'", array($exptime,$temp_user_ip)),$SQLStat);
 redirect("location",$rbasedir.url_maker($exfile['member'],$Settings['file_ext'],"act=login",$Settings['qstr'],$Settings['qsep'],$prexqstr['member'],$exqstr['member'],false)); sql_free_result($resultlog2); sql_free_result($gresult);
 ob_clean(); header("Content-Type: text/plain; charset=".$Settings['charset']); $urlstatus = 302;
index 4780137..9001a19 100644 (file)
@@ -190,7 +190,7 @@ if($_POST['act']=="view"&&
        if($CaseInsensitive=="yes"&&$WholeWord!="yes") {
        $_POST['NotePad'] = preg_replace("/".$Filter."/i", $Replace, $_POST['NotePad']); }
        ++$katarzynas; } sql_free_result($katarzynart);
-       $NewDay=GMTimeStamp();
+       $NewDay=$utccurtime->getTimestamp();
        $NewIP=$_SERVER['REMOTE_ADDR'];
        $querynewskin = sql_pre_query("UPDATE \"".$Settings['sqltable']."members\" SET \"Notes\"='%s',\"LastActive\"=%i,\"IP\"='%s' WHERE \"id\"=%i", array($_POST['NotePad'],$NewDay,$NewIP,$_SESSION['UserID']));
                sql_query($querynewskin,$SQLStat); } } }
@@ -272,7 +272,7 @@ if($_POST['act']=="signature"&&
        if($CaseInsensitive=="yes"&&$WholeWord!="yes") {
        $_POST['Signature'] = preg_replace("/".$Filter."/i", $Replace, $_POST['Signature']); }
        ++$katarzynas; } sql_free_result($katarzynart);
-       $NewDay=GMTimeStamp();
+       $NewDay=$utccurtime->getTimestamp();
        $NewIP=$_SERVER['REMOTE_ADDR'];
        $querynewskin = sql_pre_query("UPDATE \"".$Settings['sqltable']."members\" SET \"Signature\"='%s',\"LastActive\"=%i,\"IP\"='%s' WHERE \"id\"=%i", array($_POST['Signature'],$NewDay,$NewIP,$_SESSION['UserID']));
        sql_query($querynewskin,$SQLStat); } } }
@@ -365,7 +365,7 @@ if($_POST['Avatar']!=null&&$_POST['AvatarSizeW']!=null&&$_POST['AvatarSizeH']!=n
        if($_POST['AvatarSizeH']>=100) { $_POST['AvatarSizeH']=100; }
        $fullavatarsize = $_POST['AvatarSizeW']."x".$_POST['AvatarSizeH'];
        $_POST['Avatar'] = htmlentities($_POST['Avatar'], ENT_QUOTES, $Settings['charset']);
-       $NewDay=GMTimeStamp();
+       $NewDay=$utccurtime->getTimestamp();
        $NewIP=$_SERVER['REMOTE_ADDR'];
        $_POST['Avatar'] = remove_spaces($_POST['Avatar']);
        $querynewskin = sql_pre_query("UPDATE \"".$Settings['sqltable']."members\" SET \"Avatar\"='%s',\"AvatarSize\"='%s',\"LastActive\"=%i,\"IP\"='%s' WHERE \"id\"=%i", array($_POST['Avatar'],$fullavatarsize,$NewDay,$NewIP,$_SESSION['UserID']));
@@ -382,11 +382,73 @@ $User1DateFormat=sql_result($result,$i,"DateFormat");
 $User1DateFormat = htmlspecialchars($User1DateFormat, ENT_QUOTES, $Settings['charset']);
 $User1TimeFormat=sql_result($result,$i,"TimeFormat");
 $User1TimeFormat= htmlspecialchars($User1TimeFormat, ENT_QUOTES, $Settings['charset']);
-$tsa_mem = explode(":",$User1TimeZone);
-$TimeZoneArray = array("offset" => $User1TimeZone, "hour" => $tsa_mem[0], "minute" => $tsa_mem[1]);
-$User1DST=sql_result($result,$i,"DST");
 $settingsact = url_maker($exfile['profile'],$Settings['file_ext'],"act=settings",$Settings['qstr'],$Settings['qsep'],$prexqstr['profile'],$exqstr['profile']);
-$profiletitle = " ".$ThemeSet['TitleDivider']." Board Settings"; ?>
+$profiletitle = " ".$ThemeSet['TitleDivider']." Board Settings"; 
+// http://www.tutorialspoint.com/php/php_function_timezone_identifiers_list.htm
+$timezone_identifiers = DateTimeZone::listIdentifiers();
+//$timezone_identifiers = timezone_identifiers_list();
+$zonelist['africa'] = array();
+$zonelist['america'] = array();
+$zonelist['antarctica'] = array();
+$zonelist['asia'] = array();
+$zonelist['atlantic'] = array();
+$zonelist['australia'] = array();
+$zonelist['europe'] = array();
+$zonelist['indian'] = array();
+$zonelist['pacific'] = array();
+$zonelist['etcetera'] = array();
+for ($i=0; $i < count($timezone_identifiers); $i++) {
+    $zonelookup = explode("/", $timezone_identifiers[$i]);
+    if(count($zonelookup)==1) { array_push($zonelist['etcetera'], array($timezone_identifiers[$i], $timezone_identifiers[$i])); }
+    if(count($zonelookup)>1) { 
+        if($zonelookup[0]=="Africa") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['africa'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['africa'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="America") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['america'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['america'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Antarctica") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['antarctica'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['antarctica'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Asia") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['asia'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['asia'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Atlantic") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['atlantic'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['atlantic'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Australia") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['australia'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['australia'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Europe") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['europe'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['europe'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Indian") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['indian'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['indian'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Pacific") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['pacific'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['pacific'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+    }
+}
+?>
 <div class="TableMenuBorder">
 <?php if($ThemeSet['TableStyle']=="div") { ?>
 <div class="TableMenuRow1">
@@ -411,39 +473,96 @@ $profiletitle = " ".$ThemeSet['TitleDivider']." Board Settings"; ?>
 <tr style="text-align: left;">
        <td style="width: 40%;"><label class="TextBoxLabel" for="YourOffSet">Your TimeZone:</label></td>
        <td style="width: 60%;"><select id="YourOffSet" name="YourOffSet" class="TextBox">
+<optgroup label="Africa">
 <?php
-$plusi = 1; $minusi = 12;
-$plusnum = 15; $minusnum = 0;
-while ($minusi > $minusnum) {
-if($TimeZoneArray['hour']==-$minusi) {
-echo "<option selected=\"selected\" value=\"-".$minusi."\">UTC - ".$minusi.":00 hours</option>\n"; }
-if($TimeZoneArray['hour']!=-$minusi) {
-echo "<option value=\"-".$minusi."\">UTC - ".$minusi.":00 hours</option>\n"; }
---$minusi; }
-if($TimeZoneArray['hour']==0) { ?>
-<option selected="selected" value="0">UTC +/- 0:00 hours</option>
-<?php } if($TimeZoneArray['hour']!=0) { ?>
-<option value="0">UTC +/- 0:00 hours</option>
-<?php }
-while ($plusi < $plusnum) {
-if($TimeZoneArray['hour']==$plusi) {
-echo "<option selected=\"selected\" value=\"".$plusi."\">UTC + ".$plusi.":00 hours</option>\n"; }
-if($TimeZoneArray['hour']!=$plusi) {
-echo "<option value=\"".$plusi."\">UTC + ".$plusi.":00 hours</option>\n"; }
-++$plusi; }
-?></select></td>
-</tr><tr style="text-align: left;">
-       <td style="width: 40%;"><label class="TextBoxLabel" for="MinOffSet">Minute OffSet:</label></td>
-       <td style="width: 60%;"><select id="MinOffSet" name="MinOffSet" class="TextBox">
-<option selected="selected" value="<?php echo $TimeZoneArray['minute']; ?>">Old Value (<?php echo "0:".$TimeZoneArray['minute']." minutes"; ?>)</option>
+$optsel="";
+for ($i=0; $i < count($zonelist['africa']); $i++) {
+    if($User1TimeZone==$zonelist['africa'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['africa'][$i][1]."\">".str_replace("_", " ", $zonelist['africa'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="America">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['america']); $i++) {
+    if($User1TimeZone==$zonelist['america'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['america'][$i][1]."\">".str_replace("_", " ", $zonelist['america'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Antarctica">
 <?php
-$mini = 0; $minnum = 60;
-while ($mini < $minnum) {
-if(strlen($mini)==2) { $showmin = $mini; }
-if(strlen($mini)==1) { $showmin = "0".$mini; }
-echo "<option value=\"".$showmin."\">0:".$showmin." minutes</option>\n";
-++$mini; }
-?></select></td>
+$optsel="";
+for ($i=0; $i < count($zonelist['antarctica']); $i++) {
+    if($User1TimeZone==$zonelist['antarctica'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['antarctica'][$i][1]."\">".str_replace("_", " ", $zonelist['antarctica'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Asia">
+<?php
+for ($i=0; $i < count($zonelist['asia']); $i++) {
+    if($User1TimeZone==$zonelist['asia'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['asia'][$i][1]."\">".str_replace("_", " ", $zonelist['asia'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Atlantic">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['atlantic']); $i++) {
+    if($User1TimeZone==$zonelist['atlantic'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['atlantic'][$i][1]."\">".str_replace("_", " ", $zonelist['atlantic'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Australia">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['australia']); $i++) {
+    if($User1TimeZone==$zonelist['australia'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['australia'][$i][1]."\">".str_replace("_", " ", $zonelist['australia'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Europe">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['europe']); $i++) {
+    if($User1TimeZone==$zonelist['europe'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['europe'][$i][1]."\">".str_replace("_", " ", $zonelist['europe'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Indian">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['indian']); $i++) {
+    if($User1TimeZone==$zonelist['indian'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['indian'][$i][1]."\">".str_replace("_", " ", $zonelist['indian'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Pacific">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['pacific']); $i++) {
+    if($User1TimeZone==$zonelist['pacific'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['pacific'][$i][1]."\">".str_replace("_", " ", $zonelist['pacific'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Etcetera">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['etcetera']); $i++) {
+    if($User1TimeZone==$zonelist['etcetera'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['etcetera'][$i][1]."\">".str_replace("_", " ", $zonelist['etcetera'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+</select></td>
 </tr><tr style="text-align: left;">
        <td style="width: 40%;"><label class="TextBoxLabel" for="iDBTimeFormat">Insert time format string:</label></td>
        <td style="width: 60%;"><input type="text" class="TextBox" name="iDBTimeFormat" id="iDBTimeFormat" value="<?php echo $User1DateFormat; ?>" /></td>
@@ -519,14 +638,6 @@ echo "<option value=\"".$ThemeInfo['Name']."\">".$ThemeInfo['ThemeName']."</opti
 <option value="30">35</option>
 <option value="30">40</option>
 </select></td>
-</tr><tr style="text-align: left;">
-       <td style="width: 40%;"><label class="TextBoxLabel" for="DST">Is <span title="Daylight Savings Time">DST</span> / <span title="Summer Time">ST</span> on or off:</label></td>
-       <td style="width: 60%;"><select id="DST" name="DST" class="TextBox"><?php echo "\n" ?>
-<?php if($User1DST=="off"||$User1DST!="on") { ?>
-<option selected="selected" value="off">off</option><?php echo "\n" ?><option value="on">on</option>
-<?php } if($User1DST=="on") { ?>
-<option selected="selected" value="on">on</option><?php echo "\n" ?><option value="off">off</option>
-<?php } echo "\n" ?></select></td>
 </tr></table>
 <table style="text-align: left;">
 <tr style="text-align: left;">
@@ -547,20 +658,17 @@ echo "<option value=\"".$ThemeInfo['Name']."\">".$ThemeInfo['ThemeName']."</opti
 if($_POST['update']=="now") {
 if($_POST['act']=="settings"&&
        $_SESSION['UserGroup']!=$Settings['GuestGroup']) {
-       $NewDay=GMTimeStamp();
+       $NewDay=$utccurtime->getTimestamp();
        $NewIP=$_SERVER['REMOTE_ADDR'];
-       if(!is_numeric($_POST['YourOffSet'])) { $_POST['YourOffSet'] = "0"; }
-       if(!is_numeric($_POST['MinOffSet'])) { $_POST['MinOffSet'] = "00"; }
-       if($_POST['MinOffSet']<0) { $_POST['MinOffSet'] = "00"; }
-       $_POST['YourOffSet'] = $_POST['YourOffSet'].":".$_POST['MinOffSet'];
        $_SESSION['UserTimeZone'] = $_POST['YourOffSet'];
-       $_SESSION['UserDST'] = $_POST['DST'];
+       $usertz = new DateTimeZone($_SESSION['UserTimeZone']);
+       $usercurtime->setTimezone($usertz);
        if(!is_numeric($_POST['RepliesPerPage'])) { $_POST['RepliesPerPage'] = "10"; }
        if(!is_numeric($_POST['TopicsPerPage'])) { $_POST['TopicsPerPage'] = "10"; }
        if(!is_numeric($_POST['MessagesPerPage'])) { $_POST['MessagesPerPage'] = "10"; }
        $_POST['iDBTimeFormat'] = convert_strftime($_POST['iDBTimeFormat']);
        $_POST['iDBDateFormat'] = convert_strftime($_POST['iDBDateFormat']);
-       $querynewskin = sql_pre_query("UPDATE \"".$Settings['sqltable']."members\" SET \"UseTheme\"='%s',\"TimeZone\"='%s',\"DateFormat\"='%s',\"TimeFormat\"='%s',\"DST\"='%s',\"LastActive\"=%i,\"RepliesPerPage\"=%i,\"TopicsPerPage\"=%i,\"MessagesPerPage\"=%i,\"IP\"='%s' WHERE \"id\"=%i", array(chack_themes($_POST['skin']),$_POST['YourOffSet'],$_POST['iDBTimeFormat'],$_POST['iDBDateFormat'],$_POST['DST'],$NewDay,$_POST['RepliesPerPage'],$_POST['TopicsPerPage'],$_POST['MessagesPerPage'],$NewIP,$_SESSION['UserID']));
+       $querynewskin = sql_pre_query("UPDATE \"".$Settings['sqltable']."members\" SET \"UseTheme\"='%s',\"TimeZone\"='%s',\"DateFormat\"='%s',\"TimeFormat\"='%s',\"LastActive\"=%i,\"RepliesPerPage\"=%i,\"TopicsPerPage\"=%i,\"MessagesPerPage\"=%i,\"IP\"='%s' WHERE \"id\"=%i", array(chack_themes($_POST['skin']),$_POST['YourOffSet'],$_POST['iDBTimeFormat'],$_POST['iDBDateFormat'],$NewDay,$_POST['RepliesPerPage'],$_POST['TopicsPerPage'],$_POST['MessagesPerPage'],$NewIP,$_SESSION['UserID']));
        sql_query($querynewskin,$SQLStat); } } }
 if($_GET['act']=="profile") {
 if($_POST['update']!="now") {
@@ -593,11 +701,72 @@ if($BirthMonth!=null&&$BirthDay!=null&&$BirthYear!=null) {
        checkdate($BirthMonth,$BirthDay,$BirthYear)===false) {
        $BirthMonth = "MM"; $BirthDay = "DD"; $BirthYear = "YYYY"; }
        $User1Birthday = $BirthMonth."/".$BirthDay."/".$BirthYear; }
-$tsa_mem = explode(":",$User1TimeZone);
-$TimeZoneArray = array("offset" => $User1TimeZone, "hour" => $tsa_mem[0], "minute" => $tsa_mem[1]);
-$User1DST=sql_result($result,$i,"DST");
 $profileact = url_maker($exfile['profile'],$Settings['file_ext'],"act=profile",$Settings['qstr'],$Settings['qsep'],$prexqstr['profile'],$exqstr['profile']);
 $profiletitle = " ".$ThemeSet['TitleDivider']." Profile Editor";
+// http://www.tutorialspoint.com/php/php_function_timezone_identifiers_list.htm
+$timezone_identifiers = DateTimeZone::listIdentifiers();
+//$timezone_identifiers = timezone_identifiers_list();
+$zonelist['africa'] = array();
+$zonelist['america'] = array();
+$zonelist['antarctica'] = array();
+$zonelist['asia'] = array();
+$zonelist['atlantic'] = array();
+$zonelist['australia'] = array();
+$zonelist['europe'] = array();
+$zonelist['indian'] = array();
+$zonelist['pacific'] = array();
+$zonelist['etcetera'] = array();
+for ($i=0; $i < count($timezone_identifiers); $i++) {
+    $zonelookup = explode("/", $timezone_identifiers[$i]);
+    if(count($zonelookup)==1) { array_push($zonelist['etcetera'], array($timezone_identifiers[$i], $timezone_identifiers[$i])); }
+    if(count($zonelookup)>1) { 
+        if($zonelookup[0]=="Africa") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['africa'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['africa'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="America") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['america'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['america'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Antarctica") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['antarctica'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['antarctica'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Asia") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['asia'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['asia'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Atlantic") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['atlantic'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['atlantic'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Australia") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['australia'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['australia'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Europe") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['europe'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['europe'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Indian") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['indian'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['indian'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Pacific") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['pacific'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['pacific'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+    }
+}
 ?>
 <div class="TableMenuBorder">
 <?php if($ThemeSet['TableStyle']=="div") { ?>
@@ -635,32 +804,96 @@ $profiletitle = " ".$ThemeSet['TitleDivider']." Profile Editor";
 </tr><tr style="text-align: left;">
        <td style="width: 40%;"><label class="TextBoxLabel" for="YourOffSet">Your TimeZone:</label></td>
        <td style="width: 60%;"><select id="YourOffSet" name="YourOffSet" class="TextBox">
-<option selected="selected" value="<?php echo $TimeZoneArray['hour']; ?>">Old Value (<?php echo $TimeZoneArray['hour'].":00 hours"; ?>)</option>
+<optgroup label="Africa">
 <?php
-$plusi = 1; $minusi = 12;
-$plusnum = 15; $minusnum = 0;
-while ($minusi > $minusnum) {
-echo "<option value=\"-".$minusi."\">GMT - ".$minusi.":00 hours</option>\n";
---$minusi; }
+$optsel="";
+for ($i=0; $i < count($zonelist['africa']); $i++) {
+    if($User1TimeZone==$zonelist['africa'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['africa'][$i][1]."\">".str_replace("_", " ", $zonelist['africa'][$i][0])."</option>\n"; 
+    $optsel=""; }
 ?>
-<option value="0">GMT +/- 0:00 hours</option>
+</optgroup>
+<optgroup label="America">
 <?php
-while ($plusi < $plusnum) {
-echo "<option value=\"".$plusi."\">GMT + ".$plusi.":00 hours</option>\n";
-++$plusi; }
-?></select></td>
-</tr><tr style="text-align: left;">
-       <td style="width: 40%;"><label class="TextBoxLabel" for="MinOffSet">Minute OffSet:</label></td>
-       <td style="width: 60%;"><select id="MinOffSet" name="MinOffSet" class="TextBox">
-<option selected="selected" value="<?php echo $TimeZoneArray['minute']; ?>">Old Value (<?php echo "0:".$TimeZoneArray['minute']." minutes"; ?>)</option>
+$optsel="";
+for ($i=0; $i < count($zonelist['america']); $i++) {
+    if($User1TimeZone==$zonelist['america'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['america'][$i][1]."\">".str_replace("_", " ", $zonelist['america'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Antarctica">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['antarctica']); $i++) {
+    if($User1TimeZone==$zonelist['antarctica'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['antarctica'][$i][1]."\">".str_replace("_", " ", $zonelist['antarctica'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Asia">
 <?php
-$mini = 0; $minnum = 60;
-while ($mini < $minnum) {
-if(strlen($mini)==2) { $showmin = $mini; }
-if(strlen($mini)==1) { $showmin = "0".$mini; }
-echo "<option value=\"".$showmin."\">0:".$showmin." minutes</option>\n";
-++$mini; }
-?></select></td>
+for ($i=0; $i < count($zonelist['asia']); $i++) {
+    if($User1TimeZone==$zonelist['asia'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['asia'][$i][1]."\">".str_replace("_", " ", $zonelist['asia'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Atlantic">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['atlantic']); $i++) {
+    if($User1TimeZone==$zonelist['atlantic'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['atlantic'][$i][1]."\">".str_replace("_", " ", $zonelist['atlantic'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Australia">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['australia']); $i++) {
+    if($User1TimeZone==$zonelist['australia'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['australia'][$i][1]."\">".str_replace("_", " ", $zonelist['australia'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Europe">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['europe']); $i++) {
+    if($User1TimeZone==$zonelist['europe'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['europe'][$i][1]."\">".str_replace("_", " ", $zonelist['europe'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Indian">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['indian']); $i++) {
+    if($User1TimeZone==$zonelist['indian'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['indian'][$i][1]."\">".str_replace("_", " ", $zonelist['indian'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Pacific">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['pacific']); $i++) {
+    if($User1TimeZone==$zonelist['pacific'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['pacific'][$i][1]."\">".str_replace("_", " ", $zonelist['pacific'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Etcetera">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['etcetera']); $i++) {
+    if($User1TimeZone==$zonelist['etcetera'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['etcetera'][$i][1]."\">".str_replace("_", " ", $zonelist['etcetera'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+</select></td>
 </tr><tr style="text-align: left;">
        <td style="width: 40%;"><label class="TextBoxLabel" for="iDBTimeFormat">Insert time format string:</label></td>
        <td style="width: 60%;"><input type="text" class="TextBox" name="iDBTimeFormat" id="iDBTimeFormat" value="<?php echo $User1DateFormat; ?>" /></td>
@@ -712,14 +945,6 @@ echo "<option value=\"".$showmin."\">0:".$showmin." minutes</option>\n";
 <option value="25">25</option>
 <option value="30">30</option>
 </select></td>
-</tr><tr style="text-align: left;">
-       <td style="width: 40%;"><label class="TextBoxLabel" for="DST">Is <span title="Daylight Savings Time">DST</span> / <span title="Summer Time">ST</span> on or off:</label></td>
-       <td style="width: 60%;"><select id="DST" name="DST" class="TextBox"><?php echo "\n" ?>
-<?php if($User1DST=="off"||$User1DST!="on") { ?>
-<option selected="selected" value="off">off</option><?php echo "\n" ?><option value="on">on</option>
-<?php } if($User1DST=="on") { ?>
-<option selected="selected" value="on">on</option><?php echo "\n" ?><option value="off">off</option>
-<?php } echo "\n" ?></select></td>
 </tr></table>
 <table style="text-align: left;">
 <tr style="text-align: left;">
@@ -797,9 +1022,12 @@ if($_POST['act']=="profile"&&
        if(pre_strlen($BirthExpl[1])=="1") { $BirthExpl[1] = "0".$BirthExpl[1]; }
        if(pre_strlen($BirthExpl[0])=="2"&&pre_strlen($BirthExpl[1])=="2"&&pre_strlen($BirthExpl[2])=="4") {
        $BirthIn = mktime(12,12,12,$BirthExpl[0],$BirthExpl[1],$BirthExpl[2]);
-       $BirthMonth=GMTimeChange("m",$BirthIn,0,0,"off");
-       $BirthDay=GMTimeChange("d",$BirthIn,0,0,"off");
-       $BirthYear=GMTimeChange("Y",$BirthIn,0,0,"off"); }
+       $eventendcurtime = new DateTime();
+       $eventendcurtime->setTimestamp($BirthIn);
+       $eventendcurtime->setTimezone($utctz);
+       $BirthMonth=$tmpusrcurtime->format("m");
+       $BirthDay=$tmpusrcurtime->format("d");
+       $BirthYear=$tmpusrcurtime->format("Y"); }
        if(pre_strlen($BirthExpl[0])!="2"||pre_strlen($BirthExpl[1])!="2"||pre_strlen($BirthExpl[2])!="4") { 
                $BirthMonth="0"; $BirthDay="0"; $BirthYear="0"; } }
        if (!is_numeric($BirthExpl[0])||!is_numeric($BirthExpl[1])||!is_numeric($BirthExpl[2])) { 
@@ -809,18 +1037,15 @@ if($_POST['act']=="profile"&&
        $BirthMonth="0"; $BirthDay="0"; $BirthYear="0"; }
        if(count($BirthExpl)!="3") { $BirthMonth="0"; $BirthDay="0"; $BirthYear="0"; } }
        if($_POST['EventDay']==null) { $BirthMonth="0"; $BirthDay="0"; $BirthYear="0"; }
-       if(!is_numeric($_POST['YourOffSet'])) { $_POST['YourOffSet'] = "0"; }
-       if(!is_numeric($_POST['MinOffSet'])) { $_POST['MinOffSet'] = "00"; }
-       if($_POST['MinOffSet']<0) { $_POST['MinOffSet'] = "00"; }
-       $_POST['YourOffSet'] = $_POST['YourOffSet'].":".$_POST['MinOffSet'];
        $_SESSION['UserTimeZone'] = $_POST['YourOffSet'];
-       $_SESSION['UserDST'] = $_POST['DST'];
-       $NewDay=GMTimeStamp();
+       $usertz = new DateTimeZone($_SESSION['UserTimeZone']);
+       $usercurtime->setTimezone($usertz);
+       $NewDay=$utccurtime->getTimestamp();
        $NewIP=$_SERVER['REMOTE_ADDR'];
        $_POST['Website'] = urlcheck($_POST['Website']);
        $_POST['iDBTimeFormat'] = convert_strftime($_POST['iDBTimeFormat']);
        $_POST['iDBDateFormat'] = convert_strftime($_POST['iDBDateFormat']);
-       $querynewprofile = sql_pre_query("UPDATE \"".$Settings['sqltable']."members\" SET \"Interests\"='%s',\"Title\"='%s',\"Website\"='%s',\"TimeZone\"='%s',\"DateFormat\"='%s',\"TimeFormat\"='%s',\"Gender\"='%s',\"DST\"='%s',\"LastActive\"=%i,\"BirthMonth\"=%i,\"BirthDay\"=%i,\"BirthYear\"=%i,\"RepliesPerPage\"=%i,\"TopicsPerPage\"=%i,\"MessagesPerPage\"=%i,\"IP\"='%s' WHERE \"id\"=%i", array($_POST['Interests'],$_POST['Title'],$_POST['Website'],$_POST['YourOffSet'],$_POST['iDBTimeFormat'],$_POST['iDBDateFormat'],$_POST['YourGender'],$_POST['DST'],$NewDay,$BirthMonth,$BirthDay,$BirthYear,$_POST['RepliesPerPage'],$_POST['TopicsPerPage'],$_POST['MessagesPerPage'],$NewIP,$_SESSION['UserID']));
+       $querynewprofile = sql_pre_query("UPDATE \"".$Settings['sqltable']."members\" SET \"Interests\"='%s',\"Title\"='%s',\"Website\"='%s',\"TimeZone\"='%s',\"DateFormat\"='%s',\"TimeFormat\"='%s',\"Gender\"='%s',\"LastActive\"=%i,\"BirthMonth\"=%i,\"BirthDay\"=%i,\"BirthYear\"=%i,\"RepliesPerPage\"=%i,\"TopicsPerPage\"=%i,\"MessagesPerPage\"=%i,\"IP\"='%s' WHERE \"id\"=%i", array($_POST['Interests'],$_POST['Title'],$_POST['Website'],$_POST['YourOffSet'],$_POST['iDBTimeFormat'],$_POST['iDBDateFormat'],$_POST['YourGender'],$NewDay,$BirthMonth,$BirthDay,$BirthYear,$_POST['RepliesPerPage'],$_POST['TopicsPerPage'],$_POST['MessagesPerPage'],$NewIP,$_SESSION['UserID']));
        sql_query($querynewprofile,$SQLStat); } } }
 if($_GET['act']=="userinfo") {
 if($_POST['update']!="now") {
@@ -951,7 +1176,7 @@ if($YourPassword!=$OldPassword) { $Error="Yes"; ?>
        $NewIP=$_SERVER['REMOTE_ADDR'];
        if($Error!="Yes") { 
        if($_POST['Password']!="") {
-       $NewSalt = salt_hmac(); $NewDay = GMTimeStamp();
+       $NewSalt = salt_hmac(); $NewDay = $utccurtime->getTimestamp();
        if($Settings['use_hashtype']=="md2") { $iDBHash = "iDBH2";
        $NewPassword = b64e_hmac($_POST['Password'],$OldJoined,$NewSalt,"md2"); }
        if($Settings['use_hashtype']=="md4") { $iDBHash = "iDBH4";
index 4cc3a9e..9456703 100644 (file)
@@ -300,7 +300,10 @@ $MyTimeStamp=sql_result($result,$i,"TimeStamp");
 $MyEditTime=sql_result($result,$i,"LastUpdate");
 $MyEditUserID=sql_result($result,$i,"EditUser");
 $MyEditUserName=sql_result($result,$i,"EditUserName");
-$MyTimeStamp=GMTimeChange($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat'],$MyTimeStamp,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($MyTimeStamp);
+$tmpusrcurtime->setTimezone($usertz);
+$MyTimeStamp=$tmpusrcurtime->format($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat']);
 $MyPost=sql_result($result,$i,"Post");
 $MyDescription=sql_result($result,$i,"Description");
 $requery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."members\" WHERE \"id\"=%i LIMIT 1", array($MyUserID));
@@ -331,7 +334,10 @@ if($PreUserCanUseBBags!="yes"&&$PreUserCanUseBBags!="no"&&$PreUserCanUseBBags!="
        $PreUserCanUseBBags = "no"; }
 sql_free_result($memreresult);
 $User1Joined=sql_result($reresult,$rei,"Joined");
-$User1Joined=GMTimeChange($_SESSION['iDBDateFormat'],$User1Joined,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($User1Joined);
+$tmpusrcurtime->setTimezone($usertz);
+$User1Joined=$tmpusrcurtime->format($_SESSION['iDBDateFormat']);
 $User1Hidden=sql_result($reresult,$rei,"HiddenMember");
 $User1LevelID=sql_result($reresult,$rei,"LevelID");
 $lquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."levels\" WHERE \"id\"=%i LIMIT 1", array($User1LevelID));
@@ -434,7 +440,10 @@ $eunum = sql_num_rows($euresult); }
                $EditUserName = $EditUserNamePrefix.$EditUserName; }
        if(isset($GroupNameSuffix)&&$GroupNameSuffix!=null) {
                $EditUserName = $EditUserName.$EditUserNameSuffix; }
-       $MyEditTime = GMTimeChange($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat'],$MyEditTime,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+       $tmpusrcurtime = new DateTime();
+       $tmpusrcurtime->setTimestamp($MyEditTime);
+       $tmpusrcurtime->setTimezone($usertz);
+       $MyEditTime = $tmpusrcurtime->format($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat']);
        $MySubPost = "<div class=\"EditReply\"><br />This post has been edited by <b>".$EditUserName."</b> on ".$MyEditTime."</div>"; }
 if($User1CanUseBBags1=="yes") { $MyPost = bbcode_parser($MyPost); }
 if($User1CanExecPHP=="no") {
@@ -564,7 +573,7 @@ echo url_maker($exfile['index'],$Settings['file_ext'],"act=view",$Settings['qstr
 </table></div>
 <div class="DivReplies">&nbsp;</div>
 <?php ++$i; } sql_free_result($result); } 
-if((GMTimeStamp()<$_SESSION['LastPostTime']&&$_SESSION['LastPostTime']!=0)&&
+if(($utccurtime->getTimestamp()<$_SESSION['LastPostTime']&&$_SESSION['LastPostTime']!=0)&&
 ($_GET['act']=="create"||$_GET['act']=="edit"||$_GET['act']=="makereply"||$_GET['act']=="editreply")) { 
 $_GET['act'] = "view"; $_POST['act'] = null; 
 redirect("refresh",$rbasedir.url_maker($exfile['topic'],$Settings['file_ext'],"act=view&id=".$_GET['id']."&page=".$_GET['page'],$Settings['qstr'],$Settings['qsep'],$prexqstr['topic'],$exqstr['topic'],FALSE),"3"); ?>
@@ -953,7 +962,7 @@ redirect("refresh",$rbasedir.url_maker($exfile['index'],$Settings['file_ext'],"a
        <br />Click <a href="<?php echo url_maker($exfile['index'],$Settings['file_ext'],"act=view",$Settings['qstr'],$Settings['qsep'],$prexqstr['index'],$exqstr['index']); ?>">here</a> to goto index page.<br />&nbsp;
        </span><br /></td>
 </tr>
-<?php } if ($Error!="Yes") { $LastActive = GMTimeStamp();
+<?php } if ($Error!="Yes") { $LastActive = $utccurtime->getTimestamp();
 $gnrquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."forums\" WHERE \"id\"=%i".$ForumIgnoreList2." LIMIT 1", array($TopicForumID));
 $gnrresult=sql_query($gnrquery,$SQLStat); $gnrnum=sql_num_rows($gnrresult);
 $NumberPosts=sql_result($gnrresult,0,"NumPosts"); 
@@ -984,7 +993,7 @@ $query = sql_pre_query("INSERT INTO \"".$Settings['sqltable']."posts\" (\"TopicI
 "(%i, %i, %i, %i, '%s', %i, %i, 0, '', '%s', '%s', '%s', '0')", array($TopicID,$TopicForumID,$TopicCatID,$User1ID,$User1Name,$LastActive,$LastActive,$_POST['ReplyPost'],$_POST['ReplyDesc'],$User1IP));
 sql_query($query,$SQLStat);
 $postid = sql_get_next_id($Settings['sqltable'],"posts",$SQLStat);
-$_SESSION['LastPostTime'] = GMTimeStamp() + $GroupInfo['FloodControl'];
+$_SESSION['LastPostTime'] = $utccurtime->getTimestamp() + $GroupInfo['FloodControl'];
 if($User1ID!=0&&$User1ID!=-1) {
 $queryupd = sql_pre_query("UPDATE \"".$Settings['sqltable']."members\" SET \"LastActive\"=%i,\"IP\"='%s',\"PostCount\"=%i,\"LastPostTime\"=%i WHERE \"id\"=%i", array($LastActive,$User1IP,$NewPostCount,$_SESSION['LastPostTime'],$User1ID));
 sql_query($queryupd,$SQLStat); }
@@ -1806,7 +1815,7 @@ redirect("refresh",$rbasedir.url_maker($exfile['index'],$Settings['file_ext'],"a
        <br />Click <a href="<?php echo url_maker($exfile['index'],$Settings['file_ext'],"act=view",$Settings['qstr'],$Settings['qsep'],$prexqstr['index'],$exqstr['index']); ?>">here</a> to goto index page.<br />&nbsp;
        </span><br /></td>
 </tr>
-<?php } if ($Error!="Yes") { $LastActive = GMTimeStamp();
+<?php } if ($Error!="Yes") { $LastActive = $utccurtime->getTimestamp();
 $requery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."members\" WHERE \"id\"=%i LIMIT 1", array($_SESSION['UserID']));
 $reresult=sql_query($requery,$SQLStat);
 $renum=sql_num_rows($reresult);
@@ -1818,7 +1827,7 @@ if($_SESSION['UserGroup']==$Settings['GuestGroup']) { $User1Name = $_POST['Guest
 ++$rei; }
 sql_free_result($reresult);
 $EditUserIP=$_SERVER['REMOTE_ADDR'];
-$_SESSION['LastPostTime'] = GMTimeStamp() + $GroupInfo['FloodControl'];
+$_SESSION['LastPostTime'] = $utccurtime->getTimestamp() + $GroupInfo['FloodControl'];
 if($_SESSION['UserID']!=0&&$_SESSION['UserID']!=-1) {
 $queryupd = sql_pre_query("UPDATE \"".$Settings['sqltable']."members\" SET \"LastActive\"=%i,\"IP\"='%s',\"LastPostTime\"=%i WHERE \"id\"=%i", array($LastActive,$EditUserIP,$_SESSION['LastPostTime'],$_SESSION['UserID']));
 sql_query($queryupd,$SQLStat); }
@@ -1975,7 +1984,7 @@ sql_free_result($renee_result);
 </table></div>
 <div<?php echo $fps; ?>id="MkFastReply" class="MkFastReply">&nbsp;</div>
 <?php }
-$uviewlcuttime = GMTimeStamp();
+$uviewlcuttime = $utccurtime->getTimestamp();
 $uviewltime = $uviewlcuttime - ini_get("session.gc_maxlifetime");
 $uviewlquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."sessions\" WHERE \"expires\" >= %i AND \"session_id\"<>'%s' AND \"serialized_data\" LIKE '%s' ORDER BY \"expires\" DESC", array($uviewltime, session_id(), "%currenttopicid:".$TopicID.";%"));
 $uviewlresult=sql_query($uviewlquery,$SQLStat);
index b304f9e..a5958c2 100644 (file)
@@ -194,10 +194,13 @@ if(isset($GroupNamePrefix)&&$GroupNamePrefix!=null) {
 if(isset($GroupNameSuffix)&&$GroupNameSuffix!=null) {
        $UsersName = $UsersName.$GroupNameSuffix; }
 $TheTime=sql_result($result,$i,"TimeStamp");
-$AtomTime=GMTimeChange("Y-m-d\TH:i:s\Z",$TheTime,0);
-//$OldRSSTime=GMTimeChange("Y-m-d\TH:i:s+0:00",$TheTime,0);
+$atomcurtime = new DateTime();
+$atomcurtime->setTimestamp($TheTime);
+$atomcurtime->setTimezone($utctz);
+$AtomTime=$atomcurtime->format("Y-m-d\TH:i:s\Z");
+//$OldRSSTime=$atomcurtime->format("Y-m-d\TH:i:s+0:00");
 $OldRSSTime=$AtomTime;
-$TheTime=GMTimeChange("D, j M Y G:i:s \G\M\T",$TheTime,0);
+$TheTime=$atomcurtime->format("D, j M Y G:i:s \G\M\T");
 $TopicName=sql_result($result,$i,"TopicName");
 $ForumDescription=sql_result($result,$i,"Description");
 if(isset($PermissionInfo['CanViewForum'][$ForumID])&&
index 0731c47..8ba8f25 100644 (file)
@@ -135,9 +135,9 @@ if($memsid==-1) {
 $query = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."topics\" WHERE \"TopicName\" LIKE '%s' AND \"GuestName\"='%s'".$ForumIgnoreList4." ORDER BY \"LastUpdate\" DESC ".$SQLimit, array($_GET['search'],$_GET['msearch'],$PageLimit,$Settings['max_topics'])); 
 $rnquery = sql_pre_query("SELECT COUNT(*) FROM \"".$Settings['sqltable']."topics\" WHERE \"TopicName\" LIKE '%s' AND \"GuestName\"='%s'".$ForumIgnoreList4."", array($_GET['search'],$_GET['msearch'])); } } }
 if($_GET['type']=="getactive") {
-$active_month = GMTimeGet("m",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
-$active_day = GMTimeGet("d",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
-$active_year = GMTimeGet("Y",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$active_month = $usercurtime->format("m");
+$active_day = $usercurtime->format("d");
+$active_year = $usercurtime->format("Y");
 $active_start = mktime(0,0,0,$active_month,$active_day,$active_year);
 $active_end = mktime(23,59,59,$active_month,$active_day,$active_year);
 $query = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."topics\" WHERE (\"TimeStamp\">=%i AND \"TimeStamp\"<=%i) OR (\"LastUpdate\">=%i AND \"LastUpdate\"<=%i)".$ForumIgnoreList4." ORDER BY \"LastUpdate\" DESC ".$SQLimit, array($active_start,$active_end,$active_start,$active_end,$PageLimit,$Settings['max_topics']));
@@ -323,7 +323,10 @@ $CategoryID=sql_result($result,$i,"CategoryID");
 $UsersID=sql_result($result,$i,"UserID");
 $GuestsName=sql_result($result,$i,"GuestName");
 $TheTime=sql_result($result,$i,"TimeStamp");
-$TheTime=GMTimeChange($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat'],$TheTime,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($TheTime);
+$tmpusrcurtime->setTimezone($usertz);
+$TheTime=$tmpusrcurtime->format($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat']);
 $NumReply=sql_result($result,$i,"NumReply");
 $NumberPosts=$NumReply + 1;
 $prepagelist = null;
@@ -415,7 +418,10 @@ $ReplyID1=sql_result($glrresult,0,"id");
 $UsersID1=sql_result($glrresult,0,"UserID");
 $GuestsName1=sql_result($glrresult,0,"GuestName");
 $TimeStamp1=sql_result($glrresult,0,"TimeStamp");
-$TimeStamp1=GMTimeChange($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat'],$TimeStamp1,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($TimeStamp1);
+$tmpusrcurtime->setTimezone($usertz);
+$TimeStamp1=$tmpusrcurtime->format($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat']);
 $PreUsersName1 = GetUserName($UsersID1,$Settings['sqltable'],$SQLStat);
 if($PreUsersName1['Name']===null) { $UsersID1 = -1;
 $PreUsersName1 = GetUserName($UsersID1,$Settings['sqltable'],$SQLStat); }
index 46773f9..82e268a 100644 (file)
@@ -30,7 +30,7 @@ $_SESSION['ExtraData'] = "currentact:".$_GET['act']."; currentcategoryid:0; curr
 <div class="NavLinks"><?php echo $ThemeSet['NavLinkIcon']; ?><a href="<?php echo url_maker($exfile['index'],$Settings['file_ext'],"act=view",$Settings['qstr'],$Settings['qsep'],$prexqstr['index'],$exqstr['index']); ?>"><?php echo $Settings['board_name']; ?></a><?php echo $ThemeSet['NavLinkDivider']; ?><a href="<?php echo url_maker($exfile['index'],$Settings['file_ext'],"act=stats",$Settings['qstr'],$Settings['qsep'],$prexqstr['index'],$exqstr['index']); ?>#bstats">Board Statistics</a></div>
 <div class="DivNavLinks">&nbsp;</div>
 <?php }
-$uolcuttime = GMTimeStamp();
+$uolcuttime = $utccurtime->getTimestamp();
 $uoltime = $uolcuttime - ini_get("session.gc_maxlifetime");
 $uolquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."sessions\" WHERE \"expires\" >= %i ORDER BY \"expires\" DESC", array($uoltime));
 $uolresult=sql_query($uolquery,$SQLStat);
@@ -112,8 +112,8 @@ $NewestMemExtraIP = null;
 if($GroupInfo['CanViewIPAddress']=="yes") {
 $NewestMemTitle = " title=\"".$NewestMem['IP']."\"";
 $NewestMemExtraIP = " (<a title=\"".$NewestMem['IP']."\" onclick=\"window.open(this.href);return false;\" href=\"".sprintf($IPCheckURL,$NewestMem['IP'])."\">".$NewestMem['IP']."</a>)"; }
-$bdMonthChCk = GMTimeGet("m",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
-$bdDayChCk = GMTimeGet("d",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$bdMonthChCk = $usercurtime->format("m");
+$bdDayChCk = $usercurtime->format("d");
 if($Settings['AdminValidate']=="on") {
 $bdquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."members\" WHERE \"BirthDay\"=%i AND \"BirthMonth\"=%i AND \"HiddenMember\"='no' AND \"Validated\"='yes' AND \"GroupID\"<>%i ORDER BY \"id\"", array($bdDayChCk,$bdMonthChCk,$Settings['ValidateGroup'])); } 
 if($Settings['AdminValidate']!="on") {
@@ -128,7 +128,7 @@ $birthday['ID']=sql_result($bdresult,$bdi,"id");
 $birthday['Name']=sql_result($bdresult,$bdi,"Name");
 $birthday['IP']=sql_result($bdresult,$bdi,"IP");
 $birthday['BirthYear']=sql_result($bdresult,$bdi,"BirthYear");
-$bdThisYear = GMTimeGet("Y",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$bdThisYear = $usercurtime->format("Y");
 $birthday['Age'] = $bdThisYear - $birthday['BirthYear'];
 $bdMemTitle = null;
 if($GroupInfo['HasAdminCP']=="yes") {
@@ -139,9 +139,9 @@ if($bdi<$bdmemberz) { $bdstring = $bdstring.$bdMemURL." (<span style=\"font-weig
 if($bdi==$bdmemberz) { $bdstring = $bdstring.$bdMemURL." (<span style=\"font-weight: bold;\" title=\"".$birthday['Name']." is ".$birthday['Age']." years old\">".$birthday['Age']."</span>)"; }
 ++$bdi; }
 sql_free_result($bdresult);
-$active_month = GMTimeGet("m",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
-$active_day = GMTimeGet("d",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
-$active_year = GMTimeGet("Y",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$active_month = $usercurtime->format("m");
+$active_day = $usercurtime->format("d");
+$active_year = $usercurtime->format("Y");
 $active_start = mktime(0,0,0,$active_month,$active_day,$active_year);
 $active_end = mktime(23,59,59,$active_month,$active_day,$active_year);
 $tdMembersOnline = null;
@@ -161,7 +161,10 @@ $tdMemList['ID']=sql_result($tdresult,$tdi,"id");
 $tdMemList['Name']=sql_result($tdresult,$tdi,"Name");
 $tdMemList['IP']=sql_result($tdresult,$tdi,"IP");
 $tdMemList['LastActive']=sql_result($tdresult,$tdi,"LastActive");
-$tdMemList['LastActive']=GMTimeChange("M j Y, ".$_SESSION['iDBTimeFormat'],$tdMemList['LastActive'],$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($tdMemList['LastActive']);
+$tmpusrcurtime->setTimezone($usertz);
+$tdMemList['LastActive']=$tmpusrcurtime->format("M j Y, ".$_SESSION['iDBTimeFormat']);
 if($tdi>0) { $tdMembersOnline .= ", "; }
 $tdMembersOnline .= "<a title=\"".$tdMemList['Name']." was last active at ".$tdMemList['LastActive']."\" href=\"".url_maker($exfile['member'],$Settings['file_ext'],"act=view&id=".$tdMemList['ID'],$Settings['qstr'],$Settings['qsep'],$prexqstr['member'],$exqstr['member'])."\">".$tdMemList['Name']."</a>"; 
 if($GroupInfo['CanViewIPAddress']=="yes") {
index 8750e6b..9281166 100644 (file)
@@ -253,7 +253,10 @@ $ReplyID=sql_result($glrresult,0,"id");
 $UsersID=sql_result($glrresult,0,"UserID");
 $GuestsName=sql_result($glrresult,0,"GuestName");
 $TimeStamp=sql_result($glrresult,0,"TimeStamp");
-$TimeStamp=GMTimeChange($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat'],$TimeStamp,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($TimeStamp);
+$tmpusrcurtime->setTimezone($usertz);
+$TimeStamp=$tmpusrcurtime->format($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat']);
 sql_free_result($glrresult); }
 $PreUsersName = GetUserName($UsersID,$Settings['sqltable'],$SQLStat);
 if($PreUsersName['Name']===null) { $UsersID = -1;
index d035777..1e9d393 100644 (file)
@@ -240,7 +240,10 @@ $ReplyID=sql_result($glrresult,0,"id");
 $UsersID=sql_result($glrresult,0,"UserID");
 $GuestsName=sql_result($glrresult,0,"GuestName");
 $TimeStamp=sql_result($glrresult,0,"TimeStamp");
-$TimeStamp=GMTimeChange($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat'],$TimeStamp,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($TimeStamp);
+$tmpusrcurtime->setTimezone($usertz);
+$TimeStamp=$tmpusrcurtime->format($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat']);
 sql_free_result($glrresult); }
 $PreUsersName = GetUserName($UsersID,$Settings['sqltable'],$SQLStat);
 if($PreUsersName['Name']===null) { $UsersID = -1;
@@ -306,7 +309,7 @@ if($ThemeSet['ForumStyle']==2) {
 $ForumCheck = "skip";
 if($CanHaveTopics!="yes") { 
 $ForumName = $SForumName; $ForumID = $SForumID; $InSubForum = $SFInSubForum;
-$uviewlcuttime = GMTimeStamp();
+$uviewlcuttime = $utccurtime->getTimestamp();
 $uviewltime = $uviewlcuttime - ini_get("session.gc_maxlifetime");
 if($InSubForum==0) {
 $uviewlquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."sessions\" WHERE \"expires\" >= %i AND \"session_id\"<>'%s' AND (\"serialized_data\" LIKE '%s' OR \"serialized_data\" LIKE '%s') ORDER BY \"expires\" DESC", array($uviewltime, session_id(), "%currentforumid:0,".$ForumID.";%", "%currentforumid:".$ForumID.",%")); }
index 8758eb6..9e76416 100644 (file)
@@ -297,7 +297,10 @@ $OldForumID=sql_result($result,$i,"OldForumID");
 $UsersID=sql_result($result,$i,"UserID");
 $GuestsName=sql_result($result,$i,"GuestName");
 $TheTime=sql_result($result,$i,"TimeStamp");
-$TheTime=GMTimeChange($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat'],$TheTime,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($TheTime);
+$tmpusrcurtime->setTimezone($usertz);
+$TheTime=$tmpusrcurtime->format($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat']);
 $NumReply=sql_result($result,$i,"NumReply");
 $NumberPosts=$NumReply + 1;
 $prepagelist = null;
@@ -402,7 +405,10 @@ $UsersName1 = $PreUsersName1['Name'];
 $UsersHidden1 = $PreUsersName1['Hidden'];
 $GuestsName1=sql_result($glrresult,0,"GuestName");
 $TimeStamp1=sql_result($glrresult,0,"TimeStamp");
-$TimeStamp1=GMTimeChange($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat'],$TimeStamp1,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']); }
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($TimeStamp1);
+$tmpusrcurtime->setTimezone($usertz);
+$TimeStamp1=$tmpusrcurtime->format($_SESSION['iDBDateFormat'].", ".$_SESSION['iDBTimeFormat']); }
 $NumPages = null; $NumRPosts = $NumReply + 1;
 if(!isset($Settings['max_posts'])) { $Settings['max_posts'] = 10; }
 if($NumRPosts>$Settings['max_posts']) {
@@ -520,7 +526,7 @@ echo "<span>".$UsersName."</span>"; }
 <div class="DivTopics">&nbsp;</div>
 <?php
 sql_free_result($result); }
-if((GMTimeStamp()<$_SESSION['LastPostTime']&&$_SESSION['LastPostTime']!=0)&&($_GET['act']=="create"||$_GET['act']=="maketopic")) { 
+if(($utccurtime->getTimestamp()<$_SESSION['LastPostTime']&&$_SESSION['LastPostTime']!=0)&&($_GET['act']=="create"||$_GET['act']=="maketopic")) { 
 $_GET['act'] = "view"; $_POST['act'] = null; 
 redirect("refresh",$rbasedir.url_maker($exfile['forum'],$Settings['file_ext'],"act=view&id=".$ForumID."&page=1",$Settings['qstr'],$Settings['qsep'],$prexqstr['forum'],$exqstr['forum'],FALSE),"3"); ?>
 <div class="Table1Border">
@@ -902,7 +908,7 @@ redirect("refresh",$rbasedir.url_maker($exfile['index'],$Settings['file_ext'],"a
        <br />Click <a href="<?php echo url_maker($exfile['index'],$Settings['file_ext'],"act=view",$Settings['qstr'],$Settings['qsep'],$prexqstr['index'],$exqstr['index']); ?>">here</a> to goto index page.<br />&nbsp;
        </span><br /></td>
 </tr>
-<?php } if ($Error!="Yes") { $LastActive = GMTimeStamp();
+<?php } if ($Error!="Yes") { $LastActive = $utccurtime->getTimestamp();
 $requery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."members\" WHERE \"id\"=%i LIMIT 1", array($MyUserID));
 $reresult=sql_query($requery,$SQLStat);
 $renum=sql_num_rows($reresult);
@@ -931,7 +937,7 @@ $query = sql_pre_query("INSERT INTO \"".$Settings['sqltable']."posts\" (\"TopicI
 "(".$topicid.", %i, %i, %i, '%s', %i, %i, 0, '', '%s', '%s', '%s', '0')", array($ForumID,$ForumCatID,$User1ID,$User1Name,$LastActive,$LastActive,$_POST['TopicPost'],$_POST['TopicDesc'],$User1IP));
 sql_query($query,$SQLStat);
 $postid = sql_get_next_id($Settings['sqltable'],"posts",$SQLStat);
-$_SESSION['LastPostTime'] = GMTimeStamp() + $GroupInfo['FloodControl'];
+$_SESSION['LastPostTime'] = $utccurtime->getTimestamp() + $GroupInfo['FloodControl'];
 if($User1ID!=0&&$User1ID!=-1) {
 $queryupd = sql_pre_query("UPDATE \"".$Settings['sqltable']."members\" SET \"LastActive\"=%i,\"IP\"='%s',\"PostCount\"=%i,\"LastPostTime\"=%i WHERE \"id\"=%i", array($LastActive,$User1IP,$NewPostCount,$_SESSION['LastPostTime'],$User1ID));
 sql_query($queryupd,$SQLStat); }
@@ -971,7 +977,7 @@ if($pstring!=null||$_GET['act']!="view"||
 <?php /*<div class="DivPageLinks">&nbsp;</div>*/ ?>
 <div class="DivTable2">&nbsp;</div>
 <?php } 
-$uviewlcuttime = GMTimeStamp();
+$uviewlcuttime = $utccurtime->getTimestamp();
 $uviewltime = $uviewlcuttime - ini_get("session.gc_maxlifetime");
 if($InSubForum==0) {
 $uviewlquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."sessions\" WHERE \"expires\" >= %i AND \"session_id\"<>'%s' AND (\"serialized_data\" LIKE '%s' OR \"serialized_data\" LIKE '%s') ORDER BY \"expires\" DESC", array($uviewltime, session_id(), "%currentforumid:0,".$ForumID.";%", "%currentforumid:".$ForumID.",%")); }
index 5fdb519..0fba6aa 100644 (file)
@@ -11,7 +11,7 @@
     Copyright 2004-2014 iDB Support - http://idb.berlios.de/
     Copyright 2004-2014 Game Maker 2k - http://gamemaker2k.org/
 
-    $FileInfo: versioninfo.php - Last Update: 08/15/2015 SVN 795 - Author: cooldude2k $
+    $FileInfo: versioninfo.php - Last Update: 08/18/2015 SVN 796 - Author: cooldude2k $
 */
 $File3Name = basename($_SERVER['SCRIPT_NAME']);
 if ($File3Name=="versioninfo.php"||$File3Name=="/versioninfo.php") {
@@ -27,8 +27,8 @@ function version_info($proname,$subver,$ver,$supver,$reltype,$svnver,$showsvn) {
        return $return_var; }
 // Version number and date stuff. :P
 $VER1[0] = 0; $VER1[1] = 4; $VER1[2] = 8; $VERFull[1] = $VER1[0].".".$VER1[1].".".$VER1[2];
-$VER2[0] = "Alpha"; $VER2[1] = "Al"; $VER2[2] = "SVN"; $SubVerN = 795;
-$SVNDay[0] = 8; $SVNDay[1] = 15; $SVNDay[2] = 2015; $SVNDay[3] = $SVNDay[0]."/".$SVNDay[1]."/".$SVNDay[2];
+$VER2[0] = "Alpha"; $VER2[1] = "Al"; $VER2[2] = "SVN"; $SubVerN = 796;
+$SVNDay[0] = 8; $SVNDay[1] = 18; $SVNDay[2] = 2015; $SVNDay[3] = $SVNDay[0]."/".$SVNDay[1]."/".$SVNDay[2];
 $AltName = "DF2k"; $AltName2 = "DF2k"; $RName = "iDB"; $SFName = "IntDB";
 $RFullName = "Internet Discussion Boards"; $AltFullName = "Discussion Forums 2k"; $AltGM2k = "DF2k Team";
 $VerCheckName = "iDB"; $AltVerCheckName = "DF2k"; $AltiDBHome = "http://df2k.gamemaker2k.org/";
index fe2ab6c..15b570f 100644 (file)
@@ -37,7 +37,6 @@ if(!defined("E_DEPRECATED")) { define("E_DEPRECATED", 0); }
 @error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
 /* Get rid of session id in urls */
 if(!in_array("ini_set", $disfunc)) {
-@ini_set("date.timezone","UTC"); 
 @ini_set("default_mimetype","text/html"); 
 @ini_set("zlib.output_compression", false);
 @ini_set("zlib.output_compression_level", -1);
@@ -56,12 +55,21 @@ if(!in_array("ini_set", $disfunc)) {
 /* Change session hash type here */
 @ini_set("session.hash_function", 1);
 @ini_set("session.hash_bits_per_character", 6); }
-if(function_exists("date_default_timezone_set")) { 
-       @date_default_timezone_set("UTC"); }
 if(file_exists('extrasettings.php')) {
        require_once('extrasettings.php'); }
 if(file_exists('extendsettings.php')) {
        require_once('extendsettings.php'); }
+$deftz = new DateTimeZone(date_default_timezone_get());
+$defcurtime = new DateTime();
+$defcurtime->setTimezone($deftz);
+$utctz = new DateTimeZone("UTC");
+$utccurtime = new DateTime();
+$utccurtime->setTimestamp($defcurtime->getTimestamp());
+$utccurtime->setTimezone($utctz);
+$servcurtime = new DateTime();
+$servcurtime->setTimestamp($defcurtime->getTimestamp());
+$usercurtime = new DateTime();
+$usercurtime->setTimestamp($defcurtime->getTimestamp());
 /* Do not change anything below this line unless you know what you are doing */
 if(!isset($Settings['clean_ob'])) { $Settings['clean_ob'] = "off"; }
 function idb_output_handler($buffer) { return $buffer; }
index a4b0778..d7bbc94 100644 (file)
@@ -39,10 +39,10 @@ $disfunc = @trim($disfunc);
 $disfunc = @preg_replace("/([\\s+|\\t+|\\n+|\\r+|\\0+|\\x0B+])/i", "", $disfunc);
 if($disfunc!="ini_set") { $disfunc = explode(",",$disfunc); }
 if($disfunc=="ini_set") { $disfunc = array("ini_set"); }
-if(!in_array("ini_set", $disfunc)) {
-       @ini_set("date.timezone","UTC"); }
-if(function_exists("date_default_timezone_set")) { 
-       @date_default_timezone_set("UTC"); }
+$servtz = new DateTimeZone($_POST['YourOffSet']);
+$servcurtime->setTimezone($servtz);
+$usertz = new DateTimeZone($_POST['YourOffSet']);
+$usercurtime->setTimezone($usertz);
 ?>
 <tr class="TableRow3" style="text-align: center;">
 <td class="TableColumn3" colspan="2">
@@ -73,9 +73,9 @@ session_set_cookie_params(0, $this_dir, $URLsTest['host']);
 session_cache_limiter("private, no-cache, no-store, must-revalidate, pre-check=0, post-check=0, max-age=0");
 header("Cache-Control: private, no-cache, no-store, must-revalidate, pre-check=0, post-check=0, max-age=0");
 header("Pragma: private, no-cache, no-store, must-revalidate, pre-check=0, post-check=0, max-age=0");
-header("Date: ".gmdate("D, d M Y H:i:s")." GMT");
-header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
-header("Expires: ".gmdate("D, d M Y H:i:s")." GMT");
+header("Date: ".$utccurtime->format("D, d M Y H:i:s")." GMT");
+header("Last-Modified: ".$utccurtime->format("D, d M Y H:i:s")." GMT");
+header("Expires: ".$utccurtime->format("D, d M Y H:i:s")." GMT");
 session_start();
 //@register_shutdown_function("session_write_close");
 if (pre_strlen($_POST['AdminPasswords'])<"3") { $Error="Yes";
@@ -98,7 +98,7 @@ if($_POST['HTMLType']=="xhtml5") { $_POST['OutPutType'] = "xhtml"; }
 $_POST['BoardURL'] = htmlentities($_POST['BoardURL'], ENT_QUOTES, $Settings['charset']);
 $_POST['BoardURL'] = remove_spaces($_POST['BoardURL']);
 $_POST['BoardURL'] = addslashes($_POST['BoardURL']);
-$YourDate = GMTimeStamp();
+$YourDate = $utccurtime->getTimestamp();
 $YourEditDate = $YourDate + $dayconv['minute'];
 $GSalt = salt_hmac(); $YourSalt = salt_hmac();
 /* Fix The User Info for iDB */
@@ -222,22 +222,17 @@ if($SQLStat===false) { $Error="Yes";
 echo "<br />".sql_errorno($SQLStat)."\n"; }
 if ($Error!="Yes") {
 $ServerUUID = rand_uuid("rand");
-if(!is_numeric($_POST['YourOffSet'])) { $_POST['YourOffSet'] = "0"; }
-if(!is_numeric($_POST['MinOffSet'])) { $_POST['MinOffSet'] = "00"; }
-if($_POST['MinOffSet']<0) { $_POST['MinOffSet'] = "00"; }
-$YourOffSet = $_POST['YourOffSet'].":".$_POST['MinOffSet'];
-$AdminDST = $_POST['DST'];
-$MyDay = GMTimeGet("d",$YourOffSet,0,$AdminDST);
-$MyMonth = GMTimeGet("m",$YourOffSet,0,$AdminDST);
-$MyYear = GMTimeGet("Y",$YourOffSet,0,$AdminDST);
+$MyDay = $usercurtime->format("d");
+$MyMonth = $usercurtime->format("m");
+$MyYear = $usercurtime->format("Y");
 $MyYear10 = $MyYear+10;
 $YourDateEnd = $YourDate;
-$EventMonth = GMTimeChange("m",$YourDate,0,0,"off");
-$EventMonthEnd = GMTimeChange("m",$YourDateEnd,0,0,"off");
-$EventDay = GMTimeChange("d",$YourDate,0,0,"off");
-$EventDayEnd = GMTimeChange("d",$YourDateEnd,0,0,"off");
-$EventYear = GMTimeChange("Y",$YourDate,0,0,"off");
-$EventYearEnd = GMTimeChange("Y",$YourDateEnd,0,0,"off");
+$EventMonth = $utccurtime->format("m");
+$EventMonthEnd = $utccurtime->format("m");
+$EventDay = $utccurtime->format("d");
+$EventDayEnd = $utccurtime->format("d");
+$EventYear = $utccurtime->format("Y");
+$EventYearEnd = $utccurtime->format("Y");
 $KarmaBoostDay = $EventMonth.$EventDay;
 $Settings['idb_time_format'] = "g:i A";
 if(!isset($_POST['iDBTimeFormat'])) { 
@@ -266,7 +261,6 @@ $YourWebsite = $_POST['WebURL'];
 $UserIP = $_SERVER['REMOTE_ADDR'];
 $PostCount = 2;
 $Email = "admin@".$_SERVER['HTTP_HOST'];
-$AdminTime = $_POST['YourOffSet'].":".$_POST['MinOffSet'];
 $GEmail = "guest@".$_SERVER['HTTP_HOST'];
 $grand = rand(6,16); $i = 0; $gpass = "";
 while ($i < $grand) {
@@ -355,8 +349,7 @@ $BoardSettings=$pretext2[0]."\n".
 "\$Settings['AdminValidate'] = 'off';\n".
 "\$Settings['TestReferer'] = '".$_POST['TestReferer']."';\n".
 "\$Settings['DefaultTheme'] = '".$_POST['DefaultTheme']."';\n".
-"\$Settings['DefaultTimeZone'] = '".$AdminTime."';\n".
-"\$Settings['DefaultDST'] = '".$AdminDST."';\n".
+"\$Settings['DefaultTimeZone'] = '".$_POST['YourOffSet']."';\n".
 "\$Settings['start_date'] = ".$YourDate.";\n".
 "\$Settings['idb_time_format'] = '".$Settings['idb_time_format']."';\n".
 "\$Settings['idb_date_format'] = '".$Settings['idb_date_format']."';\n".
index 2ec4fae..3ffd86d 100644 (file)
@@ -23,9 +23,9 @@ if ($File3Name=="preinstall.php"||$File3Name=="/preinstall.php") {
 
 header("Cache-Control: private, no-cache, no-store, must-revalidate, pre-check=0, post-check=0, max-age=0");
 header("Pragma: private, no-cache, no-store, must-revalidate, pre-check=0, post-check=0, max-age=0");
-header("Date: ".gmdate("D, d M Y H:i:s")." GMT");
-header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
-header("Expires: ".gmdate("D, d M Y H:i:s")." GMT");
+header("Date: ".$utccurtime->format("D, d M Y H:i:s")." GMT");
+header("Last-Modified: ".$utccurtime->format("D, d M Y H:i:s")." GMT");
+header("Expires: ".$utccurtime->format("D, d M Y H:i:s")." GMT");
 output_reset_rewrite_vars();
 if(!isset($SettDir['inc'])) { $SettDir['inc'] = "inc/"; }
 if(!isset($SettDir['misc'])) { $SettDir['misc'] = "inc/misc/"; }
index 1c4a14a..d1a7048 100644 (file)
@@ -68,6 +68,70 @@ fclose($fp);
 $fp = fopen("./settingsbak.php","w+");
 fwrite($fp, $BoardSettings);
 fclose($fp);
+// http://www.tutorialspoint.com/php/php_function_timezone_identifiers_list.htm
+$timezone_identifiers = DateTimeZone::listIdentifiers();
+//$timezone_identifiers = timezone_identifiers_list();
+$zonelist['africa'] = array();
+$zonelist['america'] = array();
+$zonelist['antarctica'] = array();
+$zonelist['asia'] = array();
+$zonelist['atlantic'] = array();
+$zonelist['australia'] = array();
+$zonelist['europe'] = array();
+$zonelist['indian'] = array();
+$zonelist['pacific'] = array();
+$zonelist['etcetera'] = array();
+for ($i=0; $i < count($timezone_identifiers); $i++) {
+    $zonelookup = explode("/", $timezone_identifiers[$i]);
+    if(count($zonelookup)==1) { array_push($zonelist['etcetera'], array($timezone_identifiers[$i], $timezone_identifiers[$i])); }
+    if(count($zonelookup)>1) { 
+        if($zonelookup[0]=="Africa") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['africa'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['africa'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="America") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['america'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['america'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Antarctica") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['antarctica'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['antarctica'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Asia") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['asia'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['asia'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Atlantic") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['atlantic'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['atlantic'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Australia") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['australia'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['australia'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Europe") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['europe'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['europe'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Indian") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['indian'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['indian'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+        if($zonelookup[0]=="Pacific") {
+            if(count($zonelookup)==2) {
+                array_push($zonelist['pacific'], array($zonelookup[1], $timezone_identifiers[$i])); }
+            if(count($zonelookup)==3) {
+                array_push($zonelist['pacific'], array($zonelookup[2].", ".$zonelookup[1], $timezone_identifiers[$i])); } }
+    }
+}
 ?>
 <form style="display: inline;" method="post" id="install" action="install.php?act=Part4">
 <table style="text-align: left;">
@@ -206,50 +270,97 @@ if(!function_exists('hash')&&!function_exists('hash_algos')) { ?>
 </select></td>
 </tr><tr>
        <td style="width: 50%;"><label class="TextBoxLabel" for="YourOffSet">Your TimeZone:</label></td>
-       <td style="width: 50%;"><select id="YourOffSet" name="YourOffSet" class="TextBox"><?php
-if(date("I")!=1) { $myofftime = SeverOffSet(); $mydstime = "off"; }
-if(date("I")==1) { $myofftime = SeverOffSet()-1; $mydstime = "on"; }
-$plusi = 1; $minusi = 12;
-$plusnum = 15; $minusnum = 0;
-while ($minusi > $minusnum) {
-if($myofftime==-$minusi) {
-echo "<option selected=\"selected\" value=\"-".$minusi."\">UTC - ".$minusi.":00 hours</option>\n"; }
-if($myofftime!=-$minusi) {
-echo "<option value=\"-".$minusi."\">UTC - ".$minusi.":00 hours</option>\n"; }
---$minusi; }
-if($myofftime==0) { ?>
-<option selected="selected" value="0">UTC +/- 0:00 hours</option>
-<?php } if($myofftime!=0) { ?>
-<option value="0">UTC +/- 0:00 hours</option>
-<?php }
-while ($plusi < $plusnum) {
-if($myofftime==$plusi) {
-echo "<option selected=\"selected\" value=\"".$plusi."\">UTC + ".$plusi.":00 hours</option>\n"; }
-if($myofftime!=$plusi) {
-echo "<option value=\"".$plusi."\">UTC + ".$plusi.":00 hours</option>\n"; }
-++$plusi; }
-?></select></td>
-</tr><tr>
-       <td style="width: 50%;"><label class="TextBoxLabel" for="MinOffSet">Minute OffSet:</label></td>
-       <td style="width: 50%;"><select id="MinOffSet" name="MinOffSet" class="TextBox"><?php
-$mini = 0; $minnum = 60;
-while ($mini < $minnum) {
-if(strlen($mini)==2) { $showmin = $mini; }
-if(strlen($mini)==1) { $showmin = "0".$mini; }
-if($mini==0) {
-echo "\n<option selected=\"selected\" value=\"".$showmin."\">0:".$showmin." minutes</option>\n"; }
-if($mini!=0) {
-echo "<option value=\"".$showmin."\">0:".$showmin." minutes</option>\n"; }
-++$mini; }
-?></select></td>
-</tr><tr>
-       <td style="width: 50%;"><label class="TextBoxLabel" for="DST">Is <span title="Daylight Savings Time">DST</span> / <span title="Summer Time">ST</span> on or off:</label></td>
-       <td style="width: 50%;"><select id="DST" name="DST" class="TextBox"><?php echo "\n" ?>
-<?php if($mydstime=="off"||$mydstime!="on") { ?>
-<option selected="selected" value="off">off</option><?php echo "\n" ?><option value="on">on</option>
-<?php } if($mydstime=="on") { ?>
-<option selected="selected" value="on">on</option><?php echo "\n" ?><option value="off">off</option>
-<?php } echo "\n" ?></select></td>
+       <td style="width: 50%;"><select id="YourOffSet" name="YourOffSet" class="TextBox">
+<optgroup label="Africa">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['africa']); $i++) {
+    if(date_default_timezone_get()==$zonelist['africa'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['africa'][$i][1]."\">".str_replace("_", " ", $zonelist['africa'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="America">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['america']); $i++) {
+    if(date_default_timezone_get()==$zonelist['america'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['america'][$i][1]."\">".str_replace("_", " ", $zonelist['america'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Antarctica">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['antarctica']); $i++) {
+    if(date_default_timezone_get()==$zonelist['antarctica'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['antarctica'][$i][1]."\">".str_replace("_", " ", $zonelist['antarctica'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Asia">
+<?php
+for ($i=0; $i < count($zonelist['asia']); $i++) {
+    if(date_default_timezone_get()==$zonelist['asia'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['asia'][$i][1]."\">".str_replace("_", " ", $zonelist['asia'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Atlantic">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['atlantic']); $i++) {
+    if(date_default_timezone_get()==$zonelist['atlantic'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['atlantic'][$i][1]."\">".str_replace("_", " ", $zonelist['atlantic'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Australia">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['australia']); $i++) {
+    if(date_default_timezone_get()==$zonelist['australia'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['australia'][$i][1]."\">".str_replace("_", " ", $zonelist['australia'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Europe">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['europe']); $i++) {
+    if(date_default_timezone_get()==$zonelist['europe'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['europe'][$i][1]."\">".str_replace("_", " ", $zonelist['europe'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Indian">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['indian']); $i++) {
+    if(date_default_timezone_get()==$zonelist['indian'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['indian'][$i][1]."\">".str_replace("_", " ", $zonelist['indian'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Pacific">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['pacific']); $i++) {
+    if(date_default_timezone_get()==$zonelist['pacific'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['pacific'][$i][1]."\">".str_replace("_", " ", $zonelist['pacific'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+<optgroup label="Etcetera">
+<?php
+$optsel="";
+for ($i=0; $i < count($zonelist['etcetera']); $i++) {
+    if(date_default_timezone_get()==$zonelist['etcetera'][$i][1]) { $optsel = " selected=\"selected\""; }
+    echo "<option".$optsel." value=\"".$zonelist['etcetera'][$i][1]."\">".str_replace("_", " ", $zonelist['etcetera'][$i][0])."</option>\n"; 
+    $optsel=""; }
+?>
+</optgroup>
+</select></td>
 </tr><tr>
        <td style="width: 50%;"><label class="TextBoxLabel" for="iDBTimeFormat">Insert time format string:</label></td>
        <td style="width: 50%;"><input type="text" class="TextBox" name="iDBTimeFormat" size="20" id="iDBTimeFormat" value="<?php echo "g:i A"; ?>" /></td>
index baca4c6..33041d2 100644 (file)
@@ -148,7 +148,7 @@ $query = sql_pre_query("INSERT INTO \"".$_POST['tableprefix']."levels\" (\"id\",
 $query=sql_pre_query("CREATE TABLE \"".$_POST['tableprefix']."members\" (\n".
 "  \"id\" INTEGER AUTO_INCREMENT PRIMARY KEY,\n".
 "  \"Name\" VARCHAR(150) NOT NULL default '' UNIQUE,\n".
-"  \"UserPassword\" VARCHAR(250) NOT NULL default '',\n".
+"  \"UserPassword\" VARCHAR(256) NOT NULL default '',\n".
 "  \"HashType\" VARCHAR(50) NOT NULL default '',\n".
 "  \"Email\" VARCHAR(256) NOT NULL default '' UNIQUE,\n".
 "  \"GroupID\" INTEGER NOT NULL default '0',\n".
@@ -177,18 +177,17 @@ $query=sql_pre_query("CREATE TABLE \"".$_POST['tableprefix']."members\" (\n".
 "  \"RepliesPerPage\" INTEGER NOT NULL default '0',\n".
 "  \"TopicsPerPage\" INTEGER NOT NULL default '0',\n".
 "  \"MessagesPerPage\" INTEGER NOT NULL default '0',\n".
-"  \"TimeZone\" VARCHAR(5) NOT NULL default '0',\n".
+"  \"TimeZone\" VARCHAR(256) NOT NULL default '0',\n".
 "  \"DateFormat\" VARCHAR(15) NOT NULL default '0',\n".
 "  \"TimeFormat\" VARCHAR(15) NOT NULL default '0',\n".
-"  \"DST\" VARCHAR(5) NOT NULL default '0',\n".
 "  \"UseTheme\" VARCHAR(32) NOT NULL default '0',\n".
 "  \"IP\" VARCHAR(50) NOT NULL default '',\n".
 "  \"Salt\" VARCHAR(50) NOT NULL default ''\n".
 ");", array(null));
 sql_query($query,$SQLStat);
-$query = sql_pre_query("INSERT INTO \"".$_POST['tableprefix']."members\" (\"id\", \"Name\", \"UserPassword\", \"HashType\", \"Email\", \"GroupID\", \"LevelID\", \"Validated\", \"HiddenMember\", \"WarnLevel\", \"Interests\", \"Title\", \"Joined\", \"LastActive\", \"LastPostTime\", \"BanTime\", \"BirthDay\", \"BirthMonth\", \"BirthYear\", \"Signature\", \"Notes\", \"Avatar\", \"AvatarSize\", \"Website\", \"Gender\", \"PostCount\", \"Karma\", \"KarmaUpdate\", \"RepliesPerPage\", \"TopicsPerPage\", \"MessagesPerPage\", \"TimeZone\", \"DateFormat\", \"TimeFormat\", \"DST\", \"UseTheme\", \"IP\", \"Salt\") VALUES\n".
-"(-1, 'Guest', '%s', 'GuestPassword', '%s', 4, -1, 'no', 'yes', 0, 'Guest Account', 'Guest', %i, %i, '0', '0', '0', '0', '0', '', 'Your Notes', 'http://', '100x100', '%s', 'UnKnow', 1, 0, 0, 10, 10, 10, '%s', '%s', '%s', '%s', '%s', '127.0.0.1', '%s'),\n".
-"(1, '%s', '%s', '".$iDBHashType."', '%s', 1, 1, 'yes', 'no', 0, '%s', 'Admin', %i, %i, '0', '0', '0', '0', '0', '%s', 'Your Notes', '%s', '100x100', '%s', 'UnKnow', 0, 0, 0, 10, 10, 10, '%s', '%s', '%s', '%s', '%s', '%s', '%s');", array($GuestPassword,$GEmail,$YourDate,$YourDate,$YourWebsite,$AdminTime,$_POST['iDBDateFormat'],$_POST['iDBTimeFormat'],$AdminDST,$_POST['DefaultTheme'],$GSalt,$_POST['AdminUser'],$NewPassword,$_POST['AdminEmail'],$Interests,$YourDate,$YourDate,$NewSignature,$Avatar,$YourWebsite,$AdminTime,$_POST['iDBDateFormat'],$_POST['iDBTimeFormat'],$AdminDST,$_POST['DefaultTheme'],$UserIP,$YourSalt));
+$query = sql_pre_query("INSERT INTO \"".$_POST['tableprefix']."members\" (\"id\", \"Name\", \"UserPassword\", \"HashType\", \"Email\", \"GroupID\", \"LevelID\", \"Validated\", \"HiddenMember\", \"WarnLevel\", \"Interests\", \"Title\", \"Joined\", \"LastActive\", \"LastPostTime\", \"BanTime\", \"BirthDay\", \"BirthMonth\", \"BirthYear\", \"Signature\", \"Notes\", \"Avatar\", \"AvatarSize\", \"Website\", \"Gender\", \"PostCount\", \"Karma\", \"KarmaUpdate\", \"RepliesPerPage\", \"TopicsPerPage\", \"MessagesPerPage\", \"TimeZone\", \"DateFormat\", \"TimeFormat\", \"UseTheme\", \"IP\", \"Salt\") VALUES\n".
+"(-1, 'Guest', '%s', 'GuestPassword', '%s', 4, -1, 'no', 'yes', 0, 'Guest Account', 'Guest', %i, %i, '0', '0', '0', '0', '0', '', 'Your Notes', 'http://', '100x100', '%s', 'UnKnow', 1, 0, 0, 10, 10, 10, '%s', '%s', '%s', '%s', '127.0.0.1', '%s'),\n".
+"(1, '%s', '%s', '".$iDBHashType."', '%s', 1, 1, 'yes', 'no', 0, '%s', 'Admin', %i, %i, '0', '0', '0', '0', '0', '%s', 'Your Notes', '%s', '100x100', '%s', 'UnKnow', 0, 0, 0, 10, 10, 10, '%s', '%s', '%s', '%s', '%s', '%s');", array($GuestPassword,$GEmail,$YourDate,$YourDate,$YourWebsite,$_POST['YourOffSet'],$_POST['iDBDateFormat'],$_POST['iDBTimeFormat'],$_POST['DefaultTheme'],$GSalt,$_POST['AdminUser'],$NewPassword,$_POST['AdminEmail'],$Interests,$YourDate,$YourDate,$NewSignature,$Avatar,$YourWebsite,$_POST['YourOffSet'],$_POST['iDBDateFormat'],$_POST['iDBTimeFormat'],$_POST['DefaultTheme'],$UserIP,$YourSalt));
 sql_query($query,$SQLStat);
 $query=sql_pre_query("CREATE TABLE \"".$_POST['tableprefix']."mempermissions\" (\n".
 "  \"id\" INTEGER AUTO_INCREMENT PRIMARY KEY,\n".
index 6ec4d5a..deee088 100644 (file)
@@ -177,7 +177,7 @@ sql_query($query,$SQLStat);
 $query=sql_pre_query("CREATE TABLE IF NOT EXISTS \"".$_POST['tableprefix']."members\" (\n".
 "  \"id\" int(15) NOT NULL auto_increment,\n".
 "  \"Name\" varchar(150) COLLATE ".$Settings['sql_collate']." NOT NULL default '',\n".
-"  \"UserPassword\" varchar(250) COLLATE ".$Settings['sql_collate']." NOT NULL default '',\n".
+"  \"UserPassword\" varchar(256) COLLATE ".$Settings['sql_collate']." NOT NULL default '',\n".
 "  \"HashType\" varchar(50) COLLATE ".$Settings['sql_collate']." NOT NULL default '',\n".
 "  \"Email\" varchar(256) COLLATE ".$Settings['sql_collate']." NOT NULL default '',\n".
 "  \"GroupID\" int(15) NOT NULL default '0',\n".
@@ -206,10 +206,9 @@ $query=sql_pre_query("CREATE TABLE IF NOT EXISTS \"".$_POST['tableprefix']."memb
 "  \"RepliesPerPage\" int(5) NOT NULL default '0',\n".
 "  \"TopicsPerPage\" int(5) NOT NULL default '0',\n".
 "  \"MessagesPerPage\" int(5) NOT NULL default '0',\n".
-"  \"TimeZone\" varchar(5) COLLATE ".$Settings['sql_collate']." NOT NULL default '0',\n".
+"  \"TimeZone\" varchar(256) COLLATE ".$Settings['sql_collate']." NOT NULL default '0',\n".
 "  \"DateFormat\" varchar(15) COLLATE ".$Settings['sql_collate']." NOT NULL default '0',\n".
 "  \"TimeFormat\" varchar(15) COLLATE ".$Settings['sql_collate']." NOT NULL default '0',\n".
-"  \"DST\" varchar(5) COLLATE ".$Settings['sql_collate']." NOT NULL default '0',\n".
 "  \"UseTheme\" varchar(32) COLLATE ".$Settings['sql_collate']." NOT NULL default '0',\n".
 "  \"IP\" varchar(50) COLLATE ".$Settings['sql_collate']." NOT NULL default '',\n".
 "  \"Salt\" varchar(50) COLLATE ".$Settings['sql_collate']." NOT NULL default '',\n".
@@ -218,9 +217,9 @@ $query=sql_pre_query("CREATE TABLE IF NOT EXISTS \"".$_POST['tableprefix']."memb
 "  UNIQUE KEY \"Email\" (\"Email\")\n".
 ") ENGINE=".$SQLStorageEngine."  DEFAULT CHARSET=".$Settings['sql_charset']." COLLATE=".$Settings['sql_collate'].";", array(null));
 sql_query($query,$SQLStat);
-$query = sql_pre_query("INSERT INTO \"".$_POST['tableprefix']."members\" (\"id\", \"Name\", \"UserPassword\", \"HashType\", \"Email\", \"GroupID\", \"LevelID\", \"Validated\", \"HiddenMember\", \"WarnLevel\", \"Interests\", \"Title\", \"Joined\", \"LastActive\", \"LastPostTime\", \"BanTime\", \"BirthDay\", \"BirthMonth\", \"BirthYear\", \"Signature\", \"Notes\", \"Avatar\", \"AvatarSize\", \"Website\", \"Gender\", \"PostCount\", \"Karma\", \"KarmaUpdate\", \"RepliesPerPage\", \"TopicsPerPage\", \"MessagesPerPage\", \"TimeZone\", \"DateFormat\", \"TimeFormat\", \"DST\", \"UseTheme\", \"IP\", \"Salt\") VALUES\n".
-"(-1, 'Guest', '%s', 'GuestPassword', '%s', 4, -1, 'no', 'yes', 0, 'Guest Account', 'Guest', %i, %i, '0', '0', '0', '0', '0', '', 'Your Notes', 'http://', '100x100', '%s', 'UnKnow', 1, 0, 0, 10, 10, 10, '%s', '%s', '%s', '%s', '%s', '127.0.0.1', '%s'),\n".
-"(1, '%s', '%s', '".$iDBHashType."', '%s', 1, 1, 'yes', 'no', 0, '%s', 'Admin', %i, %i, '0', '0', '0', '0', '0', '%s', 'Your Notes', '%s', '100x100', '%s', 'UnKnow', 0, 0, 0, 10, 10, 10, '%s', '%s', '%s', '%s', '%s', '%s', '%s');", array($GuestPassword,$GEmail,$YourDate,$YourDate,$YourWebsite,$AdminTime,$_POST['iDBDateFormat'],$_POST['iDBTimeFormat'],$AdminDST,$_POST['DefaultTheme'],$GSalt,$_POST['AdminUser'],$NewPassword,$_POST['AdminEmail'],$Interests,$YourDate,$YourDate,$NewSignature,$Avatar,$YourWebsite,$AdminTime,$_POST['iDBDateFormat'],$_POST['iDBTimeFormat'],$AdminDST,$_POST['DefaultTheme'],$UserIP,$YourSalt));
+$query = sql_pre_query("INSERT INTO \"".$_POST['tableprefix']."members\" (\"id\", \"Name\", \"UserPassword\", \"HashType\", \"Email\", \"GroupID\", \"LevelID\", \"Validated\", \"HiddenMember\", \"WarnLevel\", \"Interests\", \"Title\", \"Joined\", \"LastActive\", \"LastPostTime\", \"BanTime\", \"BirthDay\", \"BirthMonth\", \"BirthYear\", \"Signature\", \"Notes\", \"Avatar\", \"AvatarSize\", \"Website\", \"Gender\", \"PostCount\", \"Karma\", \"KarmaUpdate\", \"RepliesPerPage\", \"TopicsPerPage\", \"MessagesPerPage\", \"TimeZone\", \"DateFormat\", \"TimeFormat\", \"UseTheme\", \"IP\", \"Salt\") VALUES\n".
+"(-1, 'Guest', '%s', 'GuestPassword', '%s', 4, -1, 'no', 'yes', 0, 'Guest Account', 'Guest', %i, %i, '0', '0', '0', '0', '0', '', 'Your Notes', 'http://', '100x100', '%s', 'UnKnow', 1, 0, 0, 10, 10, 10, '%s', '%s', '%s', '%s', '127.0.0.1', '%s'),\n".
+"(1, '%s', '%s', '".$iDBHashType."', '%s', 1, 1, 'yes', 'no', 0, '%s', 'Admin', %i, %i, '0', '0', '0', '0', '0', '%s', 'Your Notes', '%s', '100x100', '%s', 'UnKnow', 0, 0, 0, 10, 10, 10, '%s', '%s', '%s', '%s', '%s', '%s');", array($GuestPassword,$GEmail,$YourDate,$YourDate,$YourWebsite,$_POST['YourOffSet'],$_POST['iDBDateFormat'],$_POST['iDBTimeFormat'],$_POST['DefaultTheme'],$GSalt,$_POST['AdminUser'],$NewPassword,$_POST['AdminEmail'],$Interests,$YourDate,$YourDate,$NewSignature,$Avatar,$YourWebsite,$_POST['YourOffSet'],$_POST['iDBDateFormat'],$_POST['iDBTimeFormat'],$_POST['DefaultTheme'],$UserIP,$YourSalt));
 sql_query($query,$SQLStat);
 $query=sql_pre_query("CREATE TABLE IF NOT EXISTS \"".$_POST['tableprefix']."mempermissions\" (\n".
 "  \"id\" int(15) NOT NULL auto_increment,\n".
index 087d416..d7566a3 100644 (file)
@@ -153,7 +153,7 @@ sql_query($query,$SQLStat);
 $query=sql_pre_query("CREATE TABLE \"".$_POST['tableprefix']."members\" (\n".
 "  \"id\" SERIAL PRIMARY KEY NOT NULL,\n".
 "  \"Name\" varchar(150) NOT NULL default '',\n".
-"  \"UserPassword\" varchar(250) NOT NULL default '',\n".
+"  \"UserPassword\" varchar(256) NOT NULL default '',\n".
 "  \"HashType\" varchar(50) NOT NULL default '',\n".
 "  \"Email\" varchar(256) NOT NULL default '',\n".
 "  \"GroupID\" numeric(15) NOT NULL default '0',\n".
@@ -182,10 +182,9 @@ $query=sql_pre_query("CREATE TABLE \"".$_POST['tableprefix']."members\" (\n".
 "  \"RepliesPerPage\" numeric(5) NOT NULL default '0',\n".
 "  \"TopicsPerPage\" numeric(5) NOT NULL default '0',\n".
 "  \"MessagesPerPage\" numeric(5) NOT NULL default '0',\n".
-"  \"TimeZone\" varchar(5) NOT NULL default '0',\n".
+"  \"TimeZone\" varchar(256) NOT NULL default '0',\n".
 "  \"DateFormat\" VARCHAR(15) NOT NULL default '0',\n".
 "  \"TimeFormat\" VARCHAR(15) NOT NULL default '0',\n".
-"  \"DST\" varchar(5) NOT NULL default '0',\n".
 "  \"UseTheme\" varchar(32) NOT NULL default '0',\n".
 "  \"IP\" varchar(50) NOT NULL default '',\n".
 "  \"Salt\" varchar(50) NOT NULL default '',\n".
@@ -193,9 +192,9 @@ $query=sql_pre_query("CREATE TABLE \"".$_POST['tableprefix']."members\" (\n".
 "  UNIQUE (\"Email\")\n".
 ");", array(null));
 sql_query($query,$SQLStat);
-$query = sql_pre_query("INSERT INTO \"".$_POST['tableprefix']."members\" (\"id\", \"Name\", \"UserPassword\", \"HashType\", \"Email\", \"GroupID\", \"LevelID\", \"Validated\", \"HiddenMember\", \"WarnLevel\", \"Interests\", \"Title\", \"Joined\", \"LastActive\", \"LastPostTime\", \"BanTime\", \"BirthDay\", \"BirthMonth\", \"BirthYear\", \"Signature\", \"Notes\", \"Avatar\", \"AvatarSize\", \"Website\", \"Gender\", \"PostCount\", \"Karma\", \"KarmaUpdate\", \"RepliesPerPage\", \"TopicsPerPage\", \"MessagesPerPage\", \"TimeZone\", \"DateFormat\", \"TimeFormat\", \"DST\", \"UseTheme\", \"IP\", \"Salt\") VALUES\n".
-"(-1, 'Guest', '%s', 'GuestPassword', '%s', 4, -1, 'no', 'yes', 0, 'Guest Account', 'Guest', %i, %i, '0', '0', '0', '0', '0', '', 'Your Notes', 'http://', '100x100', '%s', 'UnKnow', 1, 0, 0, 10, 10, 10, '%s', '%s', '%s', '%s', '%s', '127.0.0.1', '%s'),\n".
-"(1, '%s', '%s', '".$iDBHashType."', '%s', 1, 1, 'yes', 'no', 0, '%s', 'Admin', %i, %i, '0', '0', '0', '0', '0', '%s', 'Your Notes', '%s', '100x100', '%s', 'UnKnow', 0, 0, 0, 10, 10, 10, '%s', '%s', '%s', '%s', '%s', '%s', '%s');", array($GuestPassword,$GEmail,$YourDate,$YourDate,$YourWebsite,$AdminTime,$_POST['iDBDateFormat'],$_POST['iDBTimeFormat'],$AdminDST,$_POST['DefaultTheme'],$GSalt,$_POST['AdminUser'],$NewPassword,$_POST['AdminEmail'],$Interests,$YourDate,$YourDate,$NewSignature,$Avatar,$YourWebsite,$AdminTime,$_POST['iDBDateFormat'],$_POST['iDBTimeFormat'],$AdminDST,$_POST['DefaultTheme'],$UserIP,$YourSalt));
+$query = sql_pre_query("INSERT INTO \"".$_POST['tableprefix']."members\" (\"id\", \"Name\", \"UserPassword\", \"HashType\", \"Email\", \"GroupID\", \"LevelID\", \"Validated\", \"HiddenMember\", \"WarnLevel\", \"Interests\", \"Title\", \"Joined\", \"LastActive\", \"LastPostTime\", \"BanTime\", \"BirthDay\", \"BirthMonth\", \"BirthYear\", \"Signature\", \"Notes\", \"Avatar\", \"AvatarSize\", \"Website\", \"Gender\", \"PostCount\", \"Karma\", \"KarmaUpdate\", \"RepliesPerPage\", \"TopicsPerPage\", \"MessagesPerPage\", \"TimeZone\", \"DateFormat\", \"TimeFormat\", \"UseTheme\", \"IP\", \"Salt\") VALUES\n".
+"(-1, 'Guest', '%s', 'GuestPassword', '%s', 4, -1, 'no', 'yes', 0, 'Guest Account', 'Guest', %i, %i, '0', '0', '0', '0', '0', '', 'Your Notes', 'http://', '100x100', '%s', 'UnKnow', 1, 0, 0, 10, 10, 10, '%s', '%s', '%s', '%s', '127.0.0.1', '%s'),\n".
+"(1, '%s', '%s', '".$iDBHashType."', '%s', 1, 1, 'yes', 'no', 0, '%s', 'Admin', %i, %i, '0', '0', '0', '0', '0', '%s', 'Your Notes', '%s', '100x100', '%s', 'UnKnow', 0, 0, 0, 10, 10, 10, '%s', '%s', '%s', '%s', '%s', '%s');", array($GuestPassword,$GEmail,$YourDate,$YourDate,$YourWebsite,$_POST['YourOffSet'],$_POST['iDBDateFormat'],$_POST['iDBTimeFormat'],$_POST['DefaultTheme'],$GSalt,$_POST['AdminUser'],$NewPassword,$_POST['AdminEmail'],$Interests,$YourDate,$YourDate,$NewSignature,$Avatar,$YourWebsite,$_POST['YourOffSet'],$_POST['iDBDateFormat'],$_POST['iDBTimeFormat'],$_POST['DefaultTheme'],$UserIP,$YourSalt));
 sql_query($query,$SQLStat);
 $query=sql_pre_query("CREATE TABLE \"".$_POST['tableprefix']."mempermissions\" (\n".
 "  \"id\" SERIAL PRIMARY KEY NOT NULL,\n".
index 68e8cb0..e92605e 100644 (file)
@@ -173,7 +173,7 @@ sql_query($query,$SQLStat);
 $query=sql_pre_query("CREATE TABLE \"".$_POST['tableprefix']."members\" (\n".
 "  \"id\" INTEGER PRIMARY KEY NOT NULL,\n".
 "  \"Name\" VARCHAR(150) UNIQUE NOT NULL default '',\n".
-"  \"UserPassword\" VARCHAR(250) NOT NULL default '',\n".
+"  \"UserPassword\" VARCHAR(256) NOT NULL default '',\n".
 "  \"HashType\" VARCHAR(50) NOT NULL default '',\n".
 "  \"Email\" VARCHAR(256) UNIQUE NOT NULL default '',\n".
 "  \"GroupID\" INTEGER NOT NULL default '0',\n".
@@ -202,20 +202,19 @@ $query=sql_pre_query("CREATE TABLE \"".$_POST['tableprefix']."members\" (\n".
 "  \"RepliesPerPage\" INTEGER NOT NULL default '0',\n".
 "  \"TopicsPerPage\" INTEGER NOT NULL default '0',\n".
 "  \"MessagesPerPage\" INTEGER NOT NULL default '0',\n".
-"  \"TimeZone\" VARCHAR(5) NOT NULL default '0',\n".
+"  \"TimeZone\" VARCHAR(256) NOT NULL default '0',\n".
 "  \"DateFormat\" VARCHAR(15) NOT NULL default '0',\n".
 "  \"TimeFormat\" VARCHAR(15) NOT NULL default '0',\n".
-"  \"DST\" VARCHAR(5) NOT NULL default '0',\n".
 "  \"UseTheme\" VARCHAR(32) NOT NULL default '0',\n".
 "  \"IP\" VARCHAR(50) NOT NULL default '',\n".
 "  \"Salt\" VARCHAR(50) NOT NULL default ''\n".
 ");", array(null));
 sql_query($query,$SQLStat);
-$query = sql_pre_query("INSERT INTO \"".$_POST['tableprefix']."members\" (\"id\", \"Name\", \"UserPassword\", \"HashType\", \"Email\", \"GroupID\", \"LevelID\", \"Validated\", \"HiddenMember\", \"WarnLevel\", \"Interests\", \"Title\", \"Joined\", \"LastActive\", \"LastPostTime\", \"BanTime\", \"BirthDay\", \"BirthMonth\", \"BirthYear\", \"Signature\", \"Notes\", \"Avatar\", \"AvatarSize\", \"Website\", \"Gender\", \"PostCount\", \"Karma\", \"KarmaUpdate\", \"RepliesPerPage\", \"TopicsPerPage\", \"MessagesPerPage\", \"TimeZone\", \"DateFormat\", \"TimeFormat\", \"DST\", \"UseTheme\", \"IP\", \"Salt\") VALUES\n".
-"(-1, 'Guest', '%s', 'GuestPassword', '%s', 4, -1, 'no', 'yes', 0, 'Guest Account', 'Guest', %i, %i, '0', '0', '0', '0', '0', '', 'Your Notes', 'http://', '100x100', '%s', 'UnKnow', 1, 0, 0, 10, 10, 10, '%s', '%s', '%s', '%s', '%s', '127.0.0.1', '%s');", array($GuestPassword,$GEmail,$YourDate,$YourDate,$YourWebsite,$AdminTime,$_POST['iDBDateFormat'],$_POST['iDBTimeFormat'],$AdminDST,$_POST['DefaultTheme'],$GSalt));
+$query = sql_pre_query("INSERT INTO \"".$_POST['tableprefix']."members\" (\"id\", \"Name\", \"UserPassword\", \"HashType\", \"Email\", \"GroupID\", \"LevelID\", \"Validated\", \"HiddenMember\", \"WarnLevel\", \"Interests\", \"Title\", \"Joined\", \"LastActive\", \"LastPostTime\", \"BanTime\", \"BirthDay\", \"BirthMonth\", \"BirthYear\", \"Signature\", \"Notes\", \"Avatar\", \"AvatarSize\", \"Website\", \"Gender\", \"PostCount\", \"Karma\", \"KarmaUpdate\", \"RepliesPerPage\", \"TopicsPerPage\", \"MessagesPerPage\", \"TimeZone\", \"DateFormat\", \"TimeFormat\", \"UseTheme\", \"IP\", \"Salt\") VALUES\n".
+"(-1, 'Guest', '%s', 'GuestPassword', '%s', 4, -1, 'no', 'yes', 0, 'Guest Account', 'Guest', %i, %i, '0', '0', '0', '0', '0', '', 'Your Notes', 'http://', '100x100', '%s', 'UnKnow', 1, 0, 0, 10, 10, 10, '%s', '%s', '%s', '%s', '127.0.0.1', '%s');", array($GuestPassword,$GEmail,$YourDate,$YourDate,$YourWebsite,$_POST['YourOffSet'],$_POST['iDBDateFormat'],$_POST['iDBTimeFormat'],$_POST['DefaultTheme'],$GSalt));
 sql_query($query,$SQLStat);
-$query = sql_pre_query("INSERT INTO \"".$_POST['tableprefix']."members\" (\"id\", \"Name\", \"UserPassword\", \"HashType\", \"Email\", \"GroupID\", \"Validated\", \"HiddenMember\", \"WarnLevel\", \"Interests\", \"Title\", \"Joined\", \"LastActive\", \"LastPostTime\", \"BanTime\", \"BirthDay\", \"BirthMonth\", \"BirthYear\", \"Signature\", \"Notes\", \"Avatar\", \"AvatarSize\", \"Website\", \"Gender\", \"PostCount\", \"Karma\", \"KarmaUpdate\", \"RepliesPerPage\", \"TopicsPerPage\", \"MessagesPerPage\", \"TimeZone\", \"DateFormat\", \"TimeFormat\", \"DST\", \"UseTheme\", \"IP\", \"Salt\") VALUES\n".
-"(1, '%s', '%s', '".$iDBHashType."', '%s', 1, 1, 'yes', 'no', 0, '%s', 'Admin', %i, %i, '0', '0', '0', '0', '0', '%s', 'Your Notes', '%s', '100x100', '%s', 'UnKnow', 0, 0, 0, 10, 10, 10, '%s', '%s', '%s', '%s', '%s', '%s', '%s');", array($_POST['AdminUser'],$NewPassword,$_POST['AdminEmail'],$Interests,$YourDate,$YourDate,$NewSignature,$Avatar,$YourWebsite,$AdminTime,$_POST['iDBDateFormat'],$_POST['iDBTimeFormat'],$AdminDST,$_POST['DefaultTheme'],$UserIP,$YourSalt));
+$query = sql_pre_query("INSERT INTO \"".$_POST['tableprefix']."members\" (\"id\", \"Name\", \"UserPassword\", \"HashType\", \"Email\", \"GroupID\", \"Validated\", \"HiddenMember\", \"WarnLevel\", \"Interests\", \"Title\", \"Joined\", \"LastActive\", \"LastPostTime\", \"BanTime\", \"BirthDay\", \"BirthMonth\", \"BirthYear\", \"Signature\", \"Notes\", \"Avatar\", \"AvatarSize\", \"Website\", \"Gender\", \"PostCount\", \"Karma\", \"KarmaUpdate\", \"RepliesPerPage\", \"TopicsPerPage\", \"MessagesPerPage\", \"TimeZone\", \"DateFormat\", \"TimeFormat\", \"UseTheme\", \"IP\", \"Salt\") VALUES\n".
+"(1, '%s', '%s', '".$iDBHashType."', '%s', 1, 1, 'yes', 'no', 0, '%s', 'Admin', %i, %i, '0', '0', '0', '0', '0', '%s', 'Your Notes', '%s', '100x100', '%s', 'UnKnow', 0, 0, 0, 10, 10, 10, '%s', '%s', '%s', '%s', '%s', '%s');", array($_POST['AdminUser'],$NewPassword,$_POST['AdminEmail'],$Interests,$YourDate,$YourDate,$NewSignature,$Avatar,$YourWebsite,$_POST['YourOffSet'],$_POST['iDBDateFormat'],$_POST['iDBTimeFormat'],$_POST['DefaultTheme'],$UserIP,$YourSalt));
 sql_query($query,$SQLStat);
 $query=sql_pre_query("CREATE TABLE \"".$_POST['tableprefix']."mempermissions\" (\n".
 "  \"id\" INTEGER PRIMARY KEY NOT NULL,\n".
diff --git a/sql.php b/sql.php
index f214df6..286d5ca 100644 (file)
--- a/sql.php
+++ b/sql.php
@@ -137,9 +137,20 @@ if(!isset($Settings['sqldb'])) {
 if(file_exists("install.php")) { header('Location: install.php'); die(); } 
 if(!file_exists("install.php")) { header("Content-Type: text/plain; charset=UTF-8");
 echo "403 Error: Sorry could not find install.php\nTry uploading files again and if that dose not work try download iDB again."; die(); } }
-if(isset($Settings['sqldb'])&&
-       function_exists("date_default_timezone_set")) { 
-       @date_default_timezone_set("UTC"); }
+if(isset($Settings['sqldb'])) { 
+       $deftz = new DateTimeZone(date_default_timezone_get());
+       $defcurtime = new DateTime();
+       $defcurtime->setTimezone($deftz);
+       $utctz = new DateTimeZone("UTC");
+       $utccurtime = new DateTime();
+       $utccurtime->setTimestamp($defcurtime->getTimestamp());
+       $utccurtime->setTimezone($utctz);
+       $servtz = new DateTimeZone($Settings['DefaultTimeZone']);
+       $servcurtime = new DateTime();
+       $servcurtime->setTimestamp($defcurtime->getTimestamp());
+       $servcurtime->setTimezone($servtz);
+       $usercurtime = new DateTime();
+       $usercurtime->setTimestamp($defcurtime->getTimestamp()); }
 if(!isset($Settings['sqlhost'])) { $Settings['sqlhost'] = "localhost"; }
 if($Settings['fixpathinfo']=="on") {
        $_SERVER['PATH_INFO'] = $_SERVER['ORIG_PATH_INFO'];
@@ -350,7 +361,7 @@ if($Settings['file_ext']!="no+ext"&&$Settings['file_ext']!="no ext") {
 $MkIndexFile = $exfile['index'].$Settings['file_ext']; }
 if($Settings['file_ext']=="no+ext"||$Settings['file_ext']=="no ext") {
 $MkIndexFile = $exfile['index']; }
-$temp_session_data = "ViewingPage|s:9:\"?act=view\";ViewingFile|s:".strlen($MkIndexFile).":\"".$MkIndexFile."\";PreViewingTitle|s:7:\"Viewing\";ViewingTitle|s:11:\"Board index\";UserID|s:1:\"0\";UserIP|s:".strlen($_SERVER['REMOTE_ADDR']).":\"".$_SERVER['REMOTE_ADDR']."\";UserGroup|s:".strlen($Settings['GuestGroup']).":\"".$Settings['GuestGroup']."\";UserGroupID|s:1:\"4\";UserTimeZone|s:".strlen($Settings['DefaultTimeZone']).":\"".$Settings['DefaultTimeZone']."\";UserDST|s:".strlen($Settings['DefaultDST']).":\"".$Settings['DefaultDST']."\";";
+$temp_session_data = "ViewingPage|s:9:\"?act=view\";ViewingFile|s:".strlen($MkIndexFile).":\"".$MkIndexFile."\";PreViewingTitle|s:7:\"Viewing\";ViewingTitle|s:11:\"Board index\";UserID|s:1:\"0\";UserIP|s:".strlen($_SERVER['REMOTE_ADDR']).":\"".$_SERVER['REMOTE_ADDR']."\";UserGroup|s:".strlen($Settings['GuestGroup']).":\"".$Settings['GuestGroup']."\";UserGroupID|s:1:\"4\";UserTimeZone|s:".strlen($Settings['DefaultTimeZone']).":\"".$Settings['DefaultTimeZone']."\";";
 $alt_temp_session_data['ViewingPage'] = "?act=view";
 $alt_temp_session_data['ViewingFile'] = $MkIndexFile;
 $alt_temp_session_data['PreViewingTitle'] = "Viewing";
@@ -359,7 +370,6 @@ $alt_temp_session_data['UserID'] = "0";
 $alt_temp_session_data['UserIP'] = $_SERVER['REMOTE_ADDR'];
 $alt_temp_session_data['UserGroupID'] = "4";
 $alt_temp_session_data['UserTimeZone'] = $Settings['DefaultTimeZone'];
-$alt_temp_session_data['UserDST'] = $Settings['DefaultDST'];
 $alttemp_session_data = serialize($alt_temp_session_data);
 $alt_temp_session_data = $alttemp_session_data;
 $alttemp_session_data = null;
@@ -382,12 +392,18 @@ global $sqltable,$SQLStat,$SQLSType,$temp_user_ip,$temp_user_agent,$temp_session
 $result = sql_query(sql_pre_query("SELECT * FROM \"".$sqltable."sessions\" WHERE \"session_id\" = '%s'", array($id)),$SQLStat);
 if (!sql_num_rows($result)) {
 sql_query(sql_pre_query("DELETE FROM \"".$sqltable."sessions\" WHERE \"session_id\"<>'%s' AND \"ip_address\"='%s' AND \"user_agent\"='%s'", array($id,$temp_user_ip,$temp_user_agent)),$SQLStat);
-$time = GMTimeStamp();
+$utctz = new DateTimeZone("UTC");
+$utccurtime = new DateTime();
+$utccurtime->setTimezone($utctz);
+$time = $utccurtime->getTimestamp();
 sql_query(sql_pre_query("INSERT INTO \"".$sqltable."sessions\" (\"session_id\", \"session_data\", \"serialized_data\", \"user_agent\", \"ip_address\", \"expires\") VALUES\n".
 "('%s', '%s', '%s', '%s', '%s', %i)", array($id,$temp_session_data,$alt_temp_session_data,$temp_user_agent,$temp_user_ip,$time)),$SQLStat);
 return '';
 } else {
-$time = GMTimeStamp();
+$utctz = new DateTimeZone("UTC");
+$utccurtime = new DateTime();
+$utccurtime->setTimezone($utctz);
+$time = $utccurtime->getTimestamp();
 $predata = sql_num_rows($result);
 $data = "";
 if($predata > 0) {
@@ -398,7 +414,10 @@ return $data; } }
 //Session Write Function
 function sql_session_write($id,$data) {
 global $sqltable,$SQLStat,$SQLSType,$temp_user_ip,$temp_user_agent;
-$time = GMTimeStamp();
+$utctz = new DateTimeZone("UTC");
+$utccurtime = new DateTime();
+$utccurtime->setTimezone($utctz);
+$time = $utccurtime->getTimestamp();
 $rs = sql_query(sql_pre_query("UPDATE \"".$sqltable."sessions\" SET \"session_data\"='%s',\"serialized_data\"='%s',\"user_agent\"='%s',\"ip_address\"='%s',\"expires\"=%i WHERE \"session_id\"='%s'", array($data,serialize($_SESSION),$temp_user_agent,$temp_user_ip,$time,$id)),$SQLStat);
 return true; }
 //Session Destroy Function
@@ -409,7 +428,10 @@ return true; }
 //Session Garbage Collection Function
 function sql_session_gc($maxlifetime) {
 global $sqltable,$SQLStat;
-$time = GMTimeStamp() - $maxlifetime;
+$utctz = new DateTimeZone("UTC");
+$utccurtime = new DateTime();
+$utccurtime->setTimezone($utctz);
+$time = $utccurtime->getTimestamp() - $maxlifetime;
 //sql_query(sql_pre_query('DELETE FROM \"'.$sqltable.'sessions\" WHERE \"expires\" < UNIX_TIMESTAMP();', array(null)),$SQLStat);
 sql_query(sql_pre_query("DELETE FROM \"".$sqltable."sessions\" WHERE \"expires\" < %i", array($time)),$SQLStat);
 return true; }
@@ -430,7 +452,7 @@ header("Date: ".gmdate("D, d M Y H:i:s")." GMT");
 header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
 header("Expires: ".gmdate("D, d M Y H:i:s")." GMT");
 if(!isset($_COOKIE[$Settings['sqltable']."sess"])) {
-$exptime = GMTimeStamp() - ini_get("session.gc_maxlifetime");
+$exptime = $utccurtime->getTimestamp() - ini_get("session.gc_maxlifetime");
 sql_query(sql_pre_query("DELETE FROM \"".$Settings['sqltable']."sessions\" WHERE \"expires\" < %i OR \"ip_address\"='%s' AND \"user_agent\"='%s'", array($exptime,$temp_user_ip,$temp_user_agent)),$SQLStat); }
 if(!isset($_SESSION['CheckCookie'])) {
 if(isset($_COOKIE['SessPass'])&&isset($_COOKIE['MemberName'])) {
@@ -613,22 +635,10 @@ if(!isset($_SESSION['UserTimeZone'])) {
        if(isset($Settings['DefaultTimeZone'])) { 
        $_SESSION['UserTimeZone'] = $Settings['DefaultTimeZone'];
        if(!isset($Settings['DefaultTimeZone'])) { 
-       $_SESSION['UserTimeZone'] = SeverOffSet().":00"; } } }
-$checktime = explode(":",$_SESSION['UserTimeZone']);
-if(count($checktime)!=2) {
-       if(!isset($checktime[0])) { $checktime[0] = "0"; }
-       if(!isset($checktime[1])) { $checktime[1] = "00"; }
-       $_SESSION['UserTimeZone'] = $checktime[0].":".$checktime[1]; }
-if(!is_numeric($checktime[0])) { $checktime[0] = "0"; }
-if(!is_numeric($checktime[1])) { $checktime[1] = "00"; }
-if($checktime[1]<0) { $checktime[1] = "00"; $_SESSION['UserTimeZone'] = $checktime[0].":".$checktime[1]; }
-$checktimea = array("offset" => $_SESSION['UserTimeZone'], "hour" => $checktime[0], "minute" => $checktime[1]);
-if(!isset($_SESSION['UserDST'])) { $_SESSION['UserDST'] = null; }
-if($_SESSION['UserDST']==null) {
-if($Settings['DefaultDST']=="off") { 
-       $_SESSION['UserDST'] = "off"; }
-if($Settings['DefaultDST']=="on") { 
-       $_SESSION['UserDST'] = "on"; } }
+       $_SESSION['UserTimeZone'] = date_default_timezone_get(); } } }
+$usertz = new DateTimeZone($_SESSION['UserTimeZone']);
+$usercurtime->setTimestamp($defcurtime->getTimestamp());
+$usercurtime->setTimezone($usertz);
 // Guest Stuff
 if(isset($_SESSION['MemberName'])||
    isset($_COOKIE['MemberName'])) {
@@ -670,7 +680,7 @@ if($_GET['theme']=="../"||$_GET['theme']=="./") {
 $_GET['theme']=$Settings['DefaultTheme']; $_SESSION['Theme']=$Settings['DefaultTheme']; }
 if (file_exists($SettDir['themes'].$_GET['theme']."/settings.php")) {
 if($_SESSION['UserGroup']!=$Settings['GuestGroup']) {
-$NewDay=GMTimeStamp();
+$NewDay=$utccurtime->getTimestamp();
 $qnewskin = sql_pre_query("UPDATE \"".$Settings['sqltable']."members\" SET \"UseTheme\"='%s',\"LastActive\"='%s' WHERE \"id\"=%i", array($_GET['theme'],$NewDay,$_SESSION['UserID']));
 sql_query($qnewskin,$SQLStat); }
 /* The file Theme Exists */ }
@@ -683,7 +693,7 @@ $OldTheme = $_SESSION['Theme'];
 $_SESSION['Theme'] = chack_themes($_SESSION['Theme']);
 if($_SESSION['UserGroup']!=$Settings['GuestGroup']) {
 if($OldTheme!=$_SESSION['Theme']) { 
-$NewDay=GMTimeStamp();
+$NewDay=$utccurtime->getTimestamp();
 $qnewskin = sql_pre_query("UPDATE \"".$Settings['sqltable']."members\" SET \"UseTheme\"='%s',\"LastActive\"='%s' WHERE \"id\"=%i", array($_SESSION['Theme'],$NewDay,$_SESSION['UserID']));
 sql_query($qnewskin,$SQLStat); } }
 $_GET['theme']=$_SESSION['Theme']; }
@@ -708,7 +718,7 @@ if($themenum<=0) {
 $_GET['theme'] = $Settings['DefaultTheme']; 
 $_SESSION['Theme'] = $Settings['DefaultTheme']; 
 if($_SESSION['UserGroup']!=$Settings['GuestGroup']) {
-$NewDay=GMTimeStamp();
+$NewDay=$utccurtime->getTimestamp();
 $qnewskin = sql_pre_query("UPDATE \"".$Settings['sqltable']."members\" SET \"UseTheme\"='%s',\"LastActive\"='%s' WHERE \"id\"=%i", array($_SESSION['Theme'],$NewDay,$_SESSION['UserID']));
 sql_query($qnewskin,$SQLStat); }
 $themequery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."themes\" WHERE \"Name\"='%s'", array($_GET['theme']));
@@ -719,7 +729,7 @@ if($_GET['theme']==null) {
 if($_SESSION['Theme']!=null) {
 $_GET['theme'] = $_SESSION['Theme']; } }
 if($_SESSION['UserGroup']!=$Settings['GuestGroup']) {
-$NewDay=GMTimeStamp();
+$NewDay=$utccurtime->getTimestamp();
 $qnewskin = sql_pre_query("UPDATE \"".$Settings['sqltable']."members\" SET \"UseTheme\"='%s',\"LastActive\"='%s' WHERE \"id\"=%i", array($_GET['theme'],$NewDay,$_SESSION['UserID']));
 sql_query($qnewskin,$SQLStat); } } 
 require($SettDir['inc'].'sqlthemes.php');