Jump to content

Recommended Posts

I am having trouble putting the puzzle together.

 

I have a form with timezone, hour, day, and year.

 

Ex. of time zone option:

   <option value="-7">GMT - 7 Hours (MOUNTAIN STANDARD TIME-USA-CANADA)</option>
		   <option value="-6">GMT - 6 Hours (CENTRAL STANDARD TIME-USA-CANADA)</option>
		   <option value="-5">GMT - 5 Hours (EASTERN STANDARD TIME-USA-CANADA)</option>
		   <option value="-4">GMT - 4 Hours (ATLANTIC STANDARD TIME)</option>
		   <option value="-3">GMT - 3 Hours</option>
		   <option value="-2">GMT - 2 Hours (AZORES TIME)</option>
		   <option value="-1">GMT - 1 Hours (WEST AFRICA TIME)</option>
		   <option value="+0">GMT (WESTERN EUROPEAN TIME)</option>

 

I am posting this to a page where I need to convert the time and date into a timestamp according to the timezone they chose.

 

Note: The server is sitting on central time zone.

 

$hour=$_POST['hour'];
$month=$_POST['month'];
$day=$_POST['day'];
$year=$_POST['year'];

$timezone=$_POST['timezone'];

$currenttimezone="-6";

$finalhour=

$timestamp = mktime($finalhour, 0, 0, $month, $day, $year);

 

I stopped..... I really don't know what I am doing here. My current timezone is -6(central time).

 

I am using this for a scheduled chat time. So if someone scheduled it for 2 pm china time, they would be able to access the chat at that time.

Link to comment
https://forums.phpfreaks.com/topic/119333-solved-timezone-trouble/
Share on other sites

I'm confused... $hour is the hour they selected in the form. $timezone is the time zone selection in the form(it holds values like -2, +4, 0, -3, etc.) And I was using $currenttimezone to get things back to greenwich mean time (that should be +6 not -6), I am 6 hours behind greenwich mean time.

Do all your calculations against GMT (0) then.

$currentTime = gmdate(H);//Timestamp for GMT
$timeZone = '-8' //My Time offset - Pacific Cost
$eventTime = $currentTime + $timeZone
echo $eventTime;

 

If I ran this now it should output 10, as it's 10:35 here, you'll have to expand on it for the minutes, but it's the same process.

 

EDIT: I fixed some logic errors

I have a chat that users can schedule at a given time. In the form they are able to choose timezone, hour, day, and month.

 

I am storing this into my database as a unix time stamp.

 

What is the best way for me to do this?

 

    <form name="form1" method="post" action="process_meeting.php">
	  <table width="614" border="0" cellspacing="3" cellpadding="3">
            <tr>
              <td width="107" class="style23">Type:</td>
              <td width="222"><select name="select">
                <option value="t1">t1</option>
                <option value="t2">t2</option>
                <option value="t3">t3</option>
                <option value="t4">t4</option>
                <option value="t5">t5</option>
              </select>
              </td>
            </tr>
            <tr>
              <td class="style23">Club:</td>
              <td><input type="text" name="textfield"></td>
            </tr>
            <tr>
              <td class="style23">Topic:</td>
              <td><input type="text" name="textfield2"></td>
            </tr>
            <tr>
              <td class="style23">Timezone:</td>
              <td>
		  
		 <select name="timezone">
		   <option value="-12">GMT - 12 Hours (INTERNATIONAL DATE LINE WEST)</option>
		   <option value="-11">GMT - 11 Hours (NOME TIME)</option>
		   <option value="-10">GMT - 10 Hours (HAWAII/ALASKA STANDARD TIME)</option>
		   <option value="-9">GMT - 9 Hours (ALASKA/YUKON STANDARD TIME)</option>
		   <option value="-8">GMT - 8 Hours (PACIFIC STANDARD TIME-USA-CANADA)</option>
		   <option value="-7">GMT - 7 Hours (MOUNTAIN STANDARD TIME-USA-CANADA)</option>
		   <option value="-6">GMT - 6 Hours (CENTRAL STANDARD TIME-USA-CANADA)</option>
		   <option value="-5">GMT - 5 Hours (EASTERN STANDARD TIME-USA-CANADA)</option>
		   <option value="-4">GMT - 4 Hours (ATLANTIC STANDARD TIME)</option>
		   <option value="-3">GMT - 3 Hours</option>
		   <option value="-2">GMT - 2 Hours (AZORES TIME)</option>
		   <option value="-1">GMT - 1 Hours (WEST AFRICA TIME)</option>
		   <option value="+0">GMT (WESTERN EUROPEAN TIME)</option>
		   <option value="+1">GMT + 1 Hour (CENTRAL EUROPEAN TIME)</option>
		   <option value="+2">GMT + 2 Hours</option>
		   <option value="+3">GMT + 3 Hours</option>
		   <option value="+4">GMT + 4 Hours</option>
		   <option value="+5">GMT + 5 Hours</option>
		   <option value="+6">GMT + 6 Hours</option>
		   <option value="+7">GMT + 7 Hours</option>
		   <option value="+8">GMT + 8 Hours</option>
		   <option value="+9">GMT + 9 Hours</option>
		   <option value="+10">GMT + 10 Hours</option>
		   <option value="+11">GMT + 11 Hours</option>
		   <option value="+12">GMT + 12 Hours</option>
		 </select>
		  </td>
            </tr>
            <tr>
              <td class="style23">Hour:</td>
              <td><select name=hour>
<option value=00>00</option>
<option value=01>01</option>
<option value=02>02</option>
<option value=03>03</option>
<option value=04>04</option>
<option value=05>05</option>
<option value=06>06</option>

<option value=07>07</option>
<option value=08>08</option>
<option value=09>09</option>
<option value=10>10</option>
<option value=11>11</option>
<option value=12>12</option>
<option value=13>13</option>
<option value=14>14</option>
<option value=15>15</option>

<option value=16>16</option>
<option value=17>17</option>
<option value=18>18</option>
<option value=19>19</option>
<option value=20>20</option>
<option value=21>21</option>
<option value=22>22</option>
<option value=23>23</option>
<option value=24>24</option>

</select></td>
            </tr>
            <tr>
              <td class="style23">Month:</td>
              <td><select name=month value=''>Select Month</option>
<option value='01'>January</option>
<option value='02'>February</option>
<option value='03'>March</option>
<option value='04'>April</option>
<option value='05'>May</option>

<option value='06'>June</option>
<option value='07'>July</option>
<option value='08'>August</option>
<option value='09'>September</option>
<option value='10'>October</option>
<option value='11'>November</option>
<option value='12'>December</option>
</select>
</td>
            </tr>
            <tr>
              <td class="style23">Day:</td>
              <td><select name=dt >
<option value='01'>01</option>
<option value='02'>02</option>
<option value='03'>03</option>
<option value='04'>04</option>
<option value='05'>05</option>
<option value='06'>06</option>
<option value='07'>07</option>
<option value='08'>08</option>

<option value='09'>09</option>
<option value='10'>10</option>
<option value='11'>11</option>
<option value='12'>12</option>
<option value='13'>13</option>
<option value='14'>14</option>
<option value='15'>15</option>
<option value='16'>16</option>
<option value='17'>17</option>

<option value='18'>18</option>
<option value='19'>19</option>
<option value='20'>20</option>
<option value='21'>21</option>
<option value='22'>22</option>
<option value='23'>23</option>
<option value='24'>24</option>
<option value='25'>25</option>
<option value='26'>26</option>

<option value='27'>27</option>
<option value='28'>28</option>
<option value='29'>29</option>
<option value='30'>30</option>
<option value='31'>31</option>
</select></td>
            </tr>
            <tr>
              <td class="style23">Year:</td>
              <td><span class="style15">Year(yyyy)</span>
                <input name=year type=text value=2008 size=8 maxlength="4"></td>
            </tr>
          </table>
                        <p>
                          <input type="submit" name="Submit" value="Schedule Meeting!">
                        </p>
	</form>

 

Now, On the php that processes this... I want it to format it in unix timestamp according to the timezone they selected, hour, month, day, and year.

What if I want to customize my month, day, year, and hour into this?

 

Say the info from the form is:

 

$year='2008';

$day='23';

$month='8';

$hour='11';

$timezone='-4';

 

How could I turn this into a unix timestamp?

 

 

Do all your calculations against GMT (0) then.

$currentTime = gmdate(H);//Timestamp for GMT
$timeZone = '-8' //My Time offset - Pacific Cost
$eventTime = $currentTime + $timeZone
echo $eventTime;

 

If I ran this now it should output 10, as it's 10:35 here, you'll have to expand on it for the minutes, but it's the same process.

 

EDIT: I fixed some logic errors

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.