Hi ,

Can anyone tell how I will send the local time zone to the server and so that I can convert the unix time(coming from the database) to the local time and display it on the clients side using php (In short I dont want to use javascript when I display the time)

This is how I saved the time to database: -

Javascript

var exp_day = $("#exp_day").val();
if ( (exp_day == 0) || (exp_day == "") ) { exp_day = 00; }
else { exp_day= parseInt($("#exp_day").val()); }

var exp_hrs = $("#exp_hrs").val();
if ( (exp_hrs == 0) || (exp_hrs == "") ) { exp_hrs = 00; }
else { exp_hrs= parseInt($("#exp_hrs").val()); }

var exp_min = $("#exp_min").val();
if ( (exp_min == 0) || (exp_min == "") ) { exp_min = 00; }
else { exp_min= parseInt($("#exp_min").val()); }

var exp_time = ( (exp_day*24*60*60) + (exp_hrs*60*60) + (exp_min*60) ) ; // converting to seconds

I then posted the exp_time to a php file where it is saved into the database in unix time

php

$exp_time = time() + $_POST["exp_time"]; 

$exp_time is saved to the database.

?? Now what I need to do is , displaY this $exp_time (UTC- unix time; which is a future time) on to my clients machine. It should be display according to his local time takeing into consider his dayalight saving and all.??

what I want to do is , when the client logs in I need to grab his local time and send it to the server. So that I can do the conversion in server and display the time using php.

I have solved this problem using javascript but I was told this is not a good way :
php file which displays on the client side

<script>
function callMe(x,y) {
    var theDate = new Date(x*1000);  // convert time value to milliseconds
    var dateString = theDate.toLocaleString();
    var hours = theDate.getHours();
    var minutes = theDate.getMinutes();
    var ampm = hours >= 12 ? 'PM' : 'AM';
    hours = hours % 12;
    hours = hours ? hours : 12; // the hour '0' should be '12'
    minutes = minutes < 10 ? '0'+minutes : minutes;
    var strTime = hours + ':' + minutes + ' ' + ampm;
    var monthNames = [ "Jan", "Feb", "March", "April", "May", "June",
    "July", "Aug", "Sept", "Oct", "Nov", "Dec" ];
    var year = (theDate.getFullYear() + '').substring(2, 4);
    document.getElementById(y).innerHTML = "Exp @ "+strTime+" "+monthNames[theDate.getMonth()]+ " " +theDate.getDate()+"/"+year;
}
</script>

<div id='<?php echo $needTime[$i]; ?>' class='cpc_lower'></div></div>

<?php
echo "<script type='text/javascript'>callMe(".$Data['exp_time'].",".$needTime[$i].")</script>";
?>

This is how I tryed to solve my problem but this is not an effeciant way. So can anyone please tell me what should I send to the server (timezoneofset or something ) , so that I can do convertion in php and display it on the client. It will be greatly helpfull if you can give a coded example.

Member Avatar for LastMitch

@ckjaseem

In short I dont want to use javascript when I display the time

You this:

http://phpmaster.com/working-with-dates-and-times/

It will save you alot of time. Plus, you will get a chance to see how it works.

commented: thnx , i am going thru it. +0
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.